sql server 执行上100mb sql sql sql server 无法执行脚本 没有足够的内存继续执行
cmd
osql -S 服务器名称 -E -i sql文件路径
------------------------------------------------------
最近遇到一个问题,在sqlserver的查询分析器里面执行一个超过100MB的数据库脚本,发现老是报“引发类型为“System.OutOfMemoryException”的异常”,上网查了一下,主要是因为.sql的脚本文件过大(一般都超过100M)造成内存无法处理这么多的数据。
解决办法有各种各样,例如:
1、用记事本打开脚本文件,把文件依次剪切成10-15M左右的文本文件,然后再一个个执行;
2、或者在脚本导出时,分表导出,这样导出的文本size也不会很大;
以上问题虽然简便,但是步骤繁多,要是表和数据太多,着实是一种劳力折磨!另外如果表之间是有主外键关系的,分数据得小心谨慎,否则报错让你抓狂!
好!说了这么多,到底有什么解决方案了呢!
解决方案就是使用cmd下的osql命令,脚本大不是问题,关键是你得有耐心,执行大脚本,是需要一定的时间的!实际上也是!
什么是 Osql?
osql 是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件!
如何使用 Osql?
在开始->运行 中键入cmd,使用 "OSQL -?"命令,就可以显示osql命令行的帮助。
注意:osql 工具的选项列表是区分大小的,在使用时注意。

注意:在上图中我们可以看到osql 并不支持 SQL Server 2012的所有功能,如果需要使用SQL Server 2012的所有功能可以使用ocmd命令。
1、使用osql执行单个 Transact-SQL 语句
在键入cmd与下面这一个类似的命令:
osql -E -q "Transact-SQL statement"
例如:sql -E -q "use myDB select * from myTable"
其中 -E 表示使用 Microsoft Windows NT 身份验证。
也可以使用sa账户,具体可以看看上面的命令!
而-q 表示运行 Transact-SQL 语句,但是在查询结束时不退出 osql。
如要运行 Transact-SQL 语句并退出 osql,请使用 -Q 参数来代替 -q。
2、使用osql执行一个大脚本文件
将该工具指向一个脚本文件,步骤:
a.创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql)。
b.打开命令提示符,键入与下面类似的一个命令,然后按 ENTER 键:
osql -E -i input_file
其中input_file 是脚本文件及其完整路径。例如,如果脚本文件 myfile.sql 在 C:\users文件夹中,
请将参数 myfile 替换为 C:\users\myfile.sql。
该脚本文件的运行结果将出现在控制台窗口中。
如果您想将运行结果定向到一个文件,请向上述命令中添加 -o output_file 参数。例如:
osql -E -i input_file -o output_file
其中output_file 是输出文件及其完整路径。
总结
如果你觉得太麻烦了,可以使用批处理,将常用的一些命令写在bat文件中,需要的时候替换一些参数,点击文件执行即可!是不是比自己去写一个程序方便多呢???
sql server 执行上100mb sql sql sql server 无法执行脚本 没有足够的内存继续执行的更多相关文章
- sqlcmd 执行SQL语句或没有足够的内存来执行脚本
win+r命令提示框里面输入cmd sqlcmd -S . -U username -P password -d database -i url -S 数据库地址 -U 登录名称 -P 密码 -d 数 ...
- SQLServer执行大脚本文件时,提示“无法执行脚本没有足够的内存继续执行程序 (mscorlib)”
问题描述: 有时候服务器操作导入数据.sql,或者 当需求不可以直接备份整库还原时,往往通过导出数据库脚本的方式来部署-还原数据库表 但是当数据库导出脚本很大,用Microsoft SQL Serve ...
- Configure Red Hat Enterprise Linux shared disk cluster for SQL Server——RHEL上的“类”SQL Server Cluster功能
下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) ...
- 009.Working with SQL Server LocalDB --【在sql server localdb 上操作数据】
Working with SQL Server LocalDB 在sql server localdb 上操作数据 2017-3-7 2 分钟阅读时长 本文内容 1.SQL Server Expres ...
- 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs
原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...
- 如何知道SQL Server机器上有多少个NUMA节点
如何知道SQL Server机器上有多少个NUMA节点 文章出处: How can you tell how many NUMA nodes your SQL Server has? http://i ...
- SQL Server服务器上需要导入Excel数据的必要条件
SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...
- [SQL Server]一次执行资料夹内的.sql 指令码
原文:[SQL Server]一次执行资料夹内的.sql 指令码 初始资料库时,我们Developers们会准备很多.sql指令码来建立资料表.检视甚至初始资料,那麽要怎麽一次执行资料夹内的*.sql ...
- MySQL执行sql查询并上传至远程服务器
最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容. MySQL中将结果 ...
随机推荐
- JavaScript判断各浏览器CSS前缀的两种方式
不管浏览器更新的多快,号称多么支持标准.厂商不同,他们之间还是有很多差异.我们需要区分出这些差异,针对不同的浏览器做不同的处理. 比如 CSS 前缀,IE 的是 "-ms-",旧版 ...
- 报表软件JS开发引用HTML DOM的location和document对象
上一次提到,在报表软件FineReport的JavaScript开发中,可以访问并处理的HTML DOM对象有windows.location.document三种.这次就继续介绍后两种,locati ...
- CSS控制TD内的文本超出指定宽度后不换行而用省略号代替
<style type="text/css"> .lineOverflow { width: 100px; border:#000 solid 1px; text-ov ...
- [转]教你一招 - 如何给nopcommerce增加一个类似admin的area
本文转自:http://www.cnblogs.com/wucf2004/p/nopcommerce-area.html asp.net mvc里面的area是什么,点击这里查看 如果在nopcomm ...
- docker创建镜像
手动创建: docker run -d -p mynginx:v2 nginx rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest- ...
- AngularJS 之 Factory vs Service vs Provider【转】
英文原文:AngularJS: Factory vs Service vs Provider 当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一 ...
- ZigZag Conversion leetcode java
题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...
- 招聘前端、Java后端开发、测试、Mysql DBA
公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...
- js精确加减乘除
//加法函数function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1 ...
- lambda与常用内置函数
lambda表达式: lambda arg:arg+1 数值操作: abs() 求绝对值 abs(-1) bin() 将十进制转换成二进制 bin(3) ,’0b11’ hex() 十进制转换为十 ...