如何执行超过一百兆(100MB)的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文件中,需要的时候替换一些参数,点击文件执行即可!是不是比自己去写一个程序方便多呢???
如何执行超过一百兆(100MB)的sql脚本?的更多相关文章
- 执行超过1个小时的SQL语句
SELECT MO.MO_ID, MO.ITEM, MO.QTYORDERED, MO.PLANNEDSTARTDATE, BR.MAXLOTSIZE FROM TEMP_MO MO, (SELECT ...
- MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)
1.设置环境变量 要想在命令行下各处都能执行mysql命令,必须在系统变量Path中添加mysql的命令所在的目录.例如我安装的是集成PHP环境的mysql,在D盘xampps下,则我需要将" ...
- [转]SQL server2008 导入超大SQL脚本文件(超过10M)
同事给我一个sqlserver的学习库,sql脚本导出有300m,gui执行有内存溢出的错误报出来,所以问了一下度娘,学而时习之:) 1. SQL server2008 导入超大SQL脚本文件(超过1 ...
- jdbc在mysql下一次执行多条sql脚本
默认连接mysql的时候一次只能执行一条sql.要批量执行sql需要在jdbcUrl中增加“allowMultiQueries=true”参数,完整jdbcUrl如下: jdbc:mysql://l ...
- SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)
需求描述 一般在生产环境中,在投产的情况下,需要批量的来执行SQL脚本文件,来完成整个投产,如果投产文件比较多的情况下,无疑这是一个比较痛苦的过程,所以本篇通过PowerShell脚本来批量完成. 监 ...
- MySQL命令行下执行.sql脚本详解
本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧.现在我们开始介绍这一过程. 1.首先编写sql脚本,保存为的:book.sq ...
- shell中创建mysql库和执行sql脚本
以前执行oracle脚本都是放到plsql中执行 mysql 脚本执行: (1).先创建一个worlddb库 (2).导入sql脚本: 这就ok啦,哈哈.
- 【ORACLE】记录通过执行Oracle的执行计划查询SQL脚本中的效率问题
记录通过执行Oracle的执行计划查询SQL脚本中的效率问题 问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件. 首先,Quartz表达式培植的启 ...
- sql脚本比较大,sqlserver 无法导入,就用cmd命令执行
osql简单用法:用来将本地脚本执行,适合sql脚本比较大点的情况,执行起来比较方便 1 osql -S serverIP -U sa -P 123 -i C:\script.sql serverIP ...
随机推荐
- kbmmw 5.05.00 发布
新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi ...
- 58.UIScrollView XIB拖拽约束
第一步: 拖拽UIScrollView 到控制器上 ,给scrollView 添加约束 ,这时是正常的 第二步:scrollview上添加UIview ,(注意:这个 ScrollView就是根据这个 ...
- 2018.12.31 NOIP训练 偶数个5(简单数论)
传送门 对于出题人zxyoizxyoizxyoi先%\%%为敬题目需要龟速乘差评. 题意简述:5e55e55e5组数据,给出n,请你求出所有n位数中有偶数个5的有多少,n≤1e18n\le1e18n≤ ...
- 成功解决在Python文件上右键菜单无“Edit with IDLE”选项
我电脑是Win7旗舰版,之前电脑上安装的是Python2.6版本的,前两天为了体验一下Microsoft Excel与Python之间互操作, 下载并安装了DataNitro,在安装的时候脑残的安装了 ...
- 初识Android的ReactiveX
初识Android的ReactiveX 开发一个复杂一点的Android应用都会用到网络请求,交互和动画.这些都意味着 要写很多的回调嵌套.这样的代码也被称为callback hell(回调地狱).这 ...
- Swift: 是用Custom Segue还是用Transition动画
用一个很简单的场景做为例子:在storyboard上,你有用UINavigationController串起来两个UIViewController.这两个controller之间要互相跳转,A-> ...
- mac终端的命令都失效的解决方法
step1. 在terminal里面输入: export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin&qu ...
- 将电脑信息上传到中国移动ONENET平台
用两个小时做的 可以用在服务器远程运维等环境非常方便 需要源码的可以联系NBDX123
- POJ1064--Cable master(Binary Search)
Description Inhabitants of the Wonderland have decided to hold a regional programming contest. The J ...
- python迭代器实例
1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 1.1 使用迭代 ...