如何执行超过一百兆(100MB)的sql脚本?
2014-08-27 13:38
295 查看
原文:/article/5373825.html
最近遇到一个问题,在sqlserver的查询分析器里面执行一个超过100MB的数据库脚本,发现老是报“引发类型为“System.OutOfMemoryException”的异常”,上网查了一下,主要是因为.sql的脚本文件过大(一般都超过100M)造成内存无法处理这么多的数据。 解决办法有各种各样,例如: 1、用记事本打开脚本文件,把文件依次剪切成10-15M左右的文本文件,然后再一个个执行; 2、或者在脚本导出时,分表导出,这样导出的文本size也不会很大; 以上问题虽然简便,但是步骤繁多,要是表和数据太多,着实是一种劳力折磨!另外如果表之间是有主外键关系的,分数据得小心谨慎,否则报错让你抓狂! 好!说了这么多,到底有什么解决方案了呢! 解决方案就是使用cmd下的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。 1、使用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 是输出文件及其完整路径。
最近遇到一个问题,在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。 1、使用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 是输出文件及其完整路径。
相关文章推荐
- 如何执行超过一百兆(100MB)的sql脚本?
- 如何执行超过一百兆(100MB)的sql脚本?
- 如何在java环境下执行sql脚本文件
- 如何执行一个mysql的sql脚本文件
- DB2 命令行中如何执行sql脚本
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库
- 如何执行一个mysql的sql脚本文件
- 如何在VS里的部署中执行一段 .sql 的脚本文件?
- C#中如何执行sql脚本?
- C#中如何执行sql脚本?
- 如何执行SQL脚本随机在用户表中生成N条记录
- mysql下如何执行sql脚本
- 如何在C#里面执行.SQL脚本(SQL SERVER)(转)
- mysql下如何执行sql脚本
- 如何执行SQL脚本
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库.txt
- 如何在C#里面执行.SQL脚本(SQL SERVER)
- DB2 如何执行sql脚本
- 如何执行一个mysql的sql脚本文件
- MySql下如何执行sql脚本文件