SQL Server - 运行大型脚本文件

tag*_*s2k 65 sql-server sql-scripts

我在开发服务器上有一个数据库表,现在我已经完全填充了一个数据库表,我使用导入例程运行包含140万行的CSV文件.

我在桌面上运行了数据库发布向导,现在我的本地计算机上有一个286MB的SQL脚本.问题是,我无法弄清楚如何运行它.如果我将其加载到SQL Server Management Studio Express中,我会收到一个警告窗口,显示"操作无法完成".

关于如何让这个SQL脚本运行的任何想法?

Gul*_*zim 167

使用sqlcmd工具执行文件..

sqlcmd -S myServer\instanceName -i C:\myScript.sql
Run Code Online (Sandbox Code Playgroud)

如果对于包含多个INSERT的大型sql文件(> 100MB)有一个无法解释的"脚本错误",只需在文件中用"GO INSERT INTO"替换"INSERT INTO",这将减少事务的大小.


小智 18

CodePlex上的这个工具(Big SQL Script File Runner)将运行带有日志和GUI的任何大小的脚本文件.


小智 8

添加到Gulzar Nazim的答案:如果仍然出现故障,请尝试使用以下选项指定SQL文件的代码页-f:

sqlcmd -S myServer\instanceName -d databaseName -i C:\myScript.sql -f 65001

我试图从SQLite(默认为UTF-8)导入.dump文件,并且sqlcmd在遇到第一个特殊字符后仍然抛出错误.-f 65001为我修好了.


Mic*_*ren -9

在单个事务中运行这么大的东西并不是一个好主意。因此,我建议将文件分成更小、更易于管理的块。

另一种选择是查看直接导入 CSV 数据的其他一些方法。

  • 古尔扎·纳齐姆的答案就是最好的答案。 (9认同)
  • @feryt这可能是你的意见,但这不是OP决定的,你更喜欢别人的答案也不是迈克尔的错(即使其他答案没有解决OP的问题)。 (9认同)