我有一个123MB的sql文件,我需要在本地PC上执行。但我得到了
Cannot execute script: Insufficient memory to continue the execution of the program
如何解决这个问题?
答案 0 :(得分:97)
使用命令行工具SQLCMD,它在内存上更精简。它很简单:
SQLCMD -d <database-name> -i filename.sql
您需要有效的凭据才能访问SQL Server实例,甚至访问数据库
取自here。
答案 1 :(得分:20)
它可能对你有所帮助!请参阅以下步骤。
sqlcmd -S server-name -d database-name -i script.sql
答案 2 :(得分:8)
您还可以简单地增加服务器属性中的每个查询的最小内存值。要编辑此设置,请右键单击服务器名称,然后选择属性&gt;记忆选项卡。
我在SSMS 2012中尝试执行30MB SQL脚本时遇到此错误。将值从1024MB增加到2048MB后,我能够运行该脚本。
(这与我提供的答案相同here)
答案 3 :(得分:5)
如果我正确理解您的问题,您正在尝试恢复(transact sql)xyz.sql - 数据库+架构。您可以尝试这个对我有用的命令:
SQLCMD -U sa -i xyz.sql
答案 4 :(得分:4)
对于Windows身份验证,请使用此sql cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
注意::如果sql文件路径中有空格,请使用“(引号)”
对于SQL Server身份验证,请使用此sql cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS:在这里指定SQL Server名称
-U sa :用户名(如果使用SQL Server身份验证)
-P sasa::密码(对于SQL Server身份验证)
-d AdventureWorks2018:数据库名称来到这里
-i“ d:\ document \ sql document \ script.sql”: SQLFile的文件路径
答案 5 :(得分:2)
有时,由于脚本和数据的大小,我们会遇到这种类型的错误。服务器需要足够的内存来执行并提供结果。我们可以简单地增加每个查询的内存大小。
您只需要转到sql server属性&gt;记忆标签(左侧)&gt;现在设置要添加的最大内存限制。
此外,顶部有一个选项,“结果到文本”,与选项“结果到网格”相比,它消耗更少的内存,我们也可以使用结果到文本来减少内存执行。
答案 6 :(得分:1)
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D:\ qldbscript.sql
以管理员身份打开命令提示符
输入上述命令
“mamxxxxxmu”是计算机名称 “sqlserverr”是服务器名称 “sa”是服务器的用户名 “x1123”是服务器的密码 “QLDB”是数据库名称 “D:\ qldbscript.sql”是在数据库中执行的sql脚本文件
答案 7 :(得分:1)
尝试这一步,
1)打开PowerShell
2)写下这个命令:
sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql
3)按Return
: - )
答案 8 :(得分:1)
如果您需要在开发期间连接到LocalDB,可以使用:
sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
答案 9 :(得分:1)
以下脚本可完美运行:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
症状:
使用sqlcmd实用工具执行恢复脚本时,遇到“ Sqlcmd:错误:文件'file_name.sql”中命令'X'附近XYZ行的语法错误。
原因:
这是sqlcmd实用程序的限制。如果SQL脚本包含任何形式的美元符号($),则该实用程序将无法正确执行该脚本,因为默认情况下它将自动替换所有变量。
解决方案:
要执行带有任何形式的美元符号的脚本,必须在命令行中添加“ -x”参数。
例如
原始: sqlcmd -s服务器名称-d数据库名称-E -i c:\ Temp \ Recovery_script.sql
已修复: sqlcmd -s服务器名称-d数据库名称-E -i c:\ Temp \ Recovery_script.sql -x
答案 10 :(得分:0)
下载SQL Server Management Studio 17.6 并尝试运行脚本。 下载链接https://go.microsoft.com/fwlink/?linkid=870039 它对我有用。我有214 MB文件。
答案 11 :(得分:0)
我的数据库大于500mb,然后我使用了以下内容
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
它加载了包括SP在内的所有内容
* NB:以管理员身份运行cmd