转自:微点阅读https://www.weidianyuedu.com/content/3417405229453.html
最近遇到一个问题,在SQL Server的查询分析器里面执行一个超过100MB的数据库脚本,发现老是报“引发类型为“System.OutOfMemoryException”的异常”,上网查了一下,主要是因为.sql的脚本文件过大(一般都超过100M)造成内存无法处理这么多的数据。解决办法有各种各样:
- 用记事本打开脚本文件,把文件依次剪切成10-15M左右的文本文件,然后再一个个执行;
- 或者在脚本导出时,分表导出,这样导出的文本size也不会很大;
什么是 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执行一个大脚本文件
将该工具指向一个脚本文件,步骤:
- 创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql)。
- 打开命令提示符,键入与下面类似的一个命令,然后按 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
【数据库|超过100M的SQL脚本怎么执行呢()】其中output_file 是输出文件及其完整路径。
总结
如果你觉得太麻烦了,可以使用批处理,将常用的一些命令写在bat文件中,需要的时候替换一些参数,点击文件执行即可!
推荐阅读
- 数据库|Mysql高级篇
- ┉┇MySQL|SQL文件太大怎么打开(推荐一款工具EmEditor)
- 剑指offer|剑指 Offer II 049. 从根节点到叶节点的路径数字之和
- 大数据|计算机科学领域 直接 间接_为什么计算机科学领域的女性很少()
- 软件测试|接口测试项目(非常值得练手)
- 计算机视觉|基于matlab的图像形状与分类毕业设计(含源文)
- servlet|vue3验证码倒计时60秒(自用)
- 数据库|使用 Apache Superset 可视化 ClickHouse 数据
- 师文汇(OceanBase 4.0 产品核心能力解读)