62

我正在使用 SQL Server 2008 R2,我有一个脚本来更新数据库,该脚本大小约为 50 MB,包含大约 800,000 行。

错误:

标题:Microsoft SQL Server 管理工作室

无法执行脚本。

附加信息:

内存不足,无法继续执行程序。(mscorlib)

有人可以帮我运行这个脚本而不会出现这个错误吗?

4

6 回答 6

93

使用更精简内存的命令行工具 SQLCMD。它很简单:

SQLCMD -d <database-name> -i filename.sql

您需要有效的凭据才能访问您的 SQL Server 实例,甚至访问数据库

于 2012-07-03T09:11:54.933 回答
60

添加到@user1293068 的答案中,我需要指定实例名称。这是我的完整语法:

sqlcmd -S <ComputerName>\<InstanceName> -d <DatabaseName> -i <MyScript.sql>

这记录在 Technet 的使用 sqlcmd 实用程序一文中。

(请注意,您必须输入“-S”的开关值,而不是“-s”。开关区分大小写。)

于 2014-01-22T01:20:30.437 回答
15

如果需要凭据

sqlcmd -S <ComputerName>\<InstanceName> -U <username> -P <password> -d <DatabaseName> -i <MyScript.sql>
于 2017-03-09T13:17:59.243 回答
14

您还可以尝试增加服务器属性中的最大服务器内存值。
要编辑此设置,请右键单击服务器名称并选择属性 > 内存选项卡。

我在尝试30MB在 SSMS 2012 中执行 SQL 脚本时遇到此错误。
将值从1024MB增加到后,2048MB我能够运行脚本。

于 2014-03-04T21:57:41.050 回答
6

好的,没有一个答案足以让我的脚本成功恢复。

所以:

  1. 确保您的网络帐户具有足够的权限来访问 SQL Server 实例和您要还原的特定数据库。

  2. 如果您打算还原的数据库仅是从生成脚本生成的(经过修改以包括模式和数据),那么最好是实际存在的数据库

  3. 以管理员模式运行命令行工具(如有必要),例如,从开始菜单上的运行中键入 CMD

  4. 在命令行工具中,键入类似"SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql". 这里,CMS是我要恢复的数据库的名称,"C:\Carnotaurus\Data\script.sql"是由 SMSS 中的 Generate Scripts 生成的恢复脚本的完整文件路径。

我希望这可以清除一些缺失的步骤。

于 2014-04-06T14:24:12.890 回答
1

打开命令提示符

sqlcmd -S 服务器名 -i C:\Users\mycomputer\Downloads\script\yourscript.sql -d datebasename

于 2020-12-22T10:53:56.503 回答