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