我正在使用 SQL Server 2008 R2,我有一个脚本来更新数据库,该脚本大小约为 50 MB,包含大约 800,000 行。
错误:
标题:Microsoft SQL Server 管理工作室
无法执行脚本。
附加信息:
内存不足,无法继续执行程序。(mscorlib)
有人可以帮我运行这个脚本而不会出现这个错误吗?
我正在使用 SQL Server 2008 R2,我有一个脚本来更新数据库,该脚本大小约为 50 MB,包含大约 800,000 行。
错误:
标题:Microsoft SQL Server 管理工作室
无法执行脚本。
附加信息:
内存不足,无法继续执行程序。(mscorlib)
有人可以帮我运行这个脚本而不会出现这个错误吗?
使用更精简内存的命令行工具 SQLCMD。它很简单:
SQLCMD -d <database-name> -i filename.sql
您需要有效的凭据才能访问您的 SQL Server 实例,甚至访问数据库
添加到@user1293068 的答案中,我需要指定实例名称。这是我的完整语法:
sqlcmd -S <ComputerName>\<InstanceName> -d <DatabaseName> -i <MyScript.sql>
这记录在 Technet 的使用 sqlcmd 实用程序一文中。
(请注意,您必须输入“-S”的开关值,而不是“-s”。开关区分大小写。)
如果需要凭据
sqlcmd -S <ComputerName>\<InstanceName> -U <username> -P <password> -d <DatabaseName> -i <MyScript.sql>
您还可以尝试增加服务器属性中的最大服务器内存值。
要编辑此设置,请右键单击服务器名称并选择属性 > 内存选项卡。
我在尝试30MB
在 SSMS 2012 中执行 SQL 脚本时遇到此错误。
将值从1024MB
增加到后,2048MB
我能够运行脚本。
好的,没有一个答案足以让我的脚本成功恢复。
所以:
确保您的网络帐户具有足够的权限来访问 SQL Server 实例和您要还原的特定数据库。
如果您打算还原的数据库仅是从生成脚本生成的(经过修改以包括模式和数据),那么最好是实际存在的数据库
以管理员模式运行命令行工具(如有必要),例如,从开始菜单上的运行中键入 CMD
在命令行工具中,键入类似"SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql"
. 这里,CMS
是我要恢复的数据库的名称,"C:\Carnotaurus\Data\script.sql"
是由 SMSS 中的 Generate Scripts 生成的恢复脚本的完整文件路径。
我希望这可以清除一些缺失的步骤。
打开命令提示符
sqlcmd -S 服务器名 -i C:\Users\mycomputer\Downloads\script\yourscript.sql -d datebasename