SQL Server - 运行大型脚本文件
-
03-07-2019 - |
题
我在开发服务器上有一个数据库表,在我使用包含140万行的CSV文件的导入例程运行它之后,该表已完全填充。
我在桌面上运行了数据库发布向导,现在我的本地计算机上有一个286MB的SQL脚本。问题是,我无法弄清楚如何运行它。如果我将其加载到SQL Server Management Studio Express中,我会看到一个警告窗口,上面写着“操作无法完成”。
关于如何运行此SQL脚本的任何想法?
解决方案
在单个事务中运行大型事务并不是一个好主意。因此,我建议将文件分解为更小,更易于管理的块。
另一个选择是查看直接导入CSV数据的其他一些方法。
其他提示
使用 sqlcmd 工具执行文件..
sqlcmd -S myServer\instanceName -i C:\myScript.sql
如果您有无法解释的“脚本错误”,对于包含多个INSERT的大型sql文件(> 100MB),只需替换“INSERT INTO”即可。通过“GO INSERT INTO”在您的文件中,这将减少交易的大小。
CodePlex上的此工具( Big SQL Script File Runner )将运行带有日志和GUI的任何大小的脚本文件。
加入Gulzar Nazim的回答: 如果仍然出现故障,请尝试指定 -f :
的SQL文件的“>代码页 sqlcmd -S myServer \ instanceName -d databaseName -i C:\ myScript.sql -f 65001
我试图从SQLite导入.dump文件(默认为UTF-8),并且sqlcmd在遇到第一个特殊字符后仍然抛出错误。 -f 65001
为我修好了。
为什么不直接使用DTS导入CSV文件?
不隶属于 StackOverflow