我有一个123MB的sql文件,需要在本地PC上执行。但是我越来越
Cannot execute script: Insufficient memory to continue the execution of the program
如何解决这个问题?
我有一个123MB的sql文件,需要在本地PC上执行。但是我越来越
Cannot execute script: Insufficient memory to continue the execution of the program
如何解决这个问题?
Answers:
对于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的文件路径
有时,由于脚本和数据的大小,我们会遇到此类错误。服务器需要足够的内存来执行并给出结果。我们可以简单地增加每个查询的内存大小。
您只需要转到sql server属性>“内存”选项卡(左侧)>现在,设置要添加的最大内存限制。
另外,在顶部有一个选项“ Results to text”,与“ Results to grid”选项相比,它消耗更少的内存,我们也可以将Result to Text转换为更少的内存执行量。
下面的脚本运行完美:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
症状:
当使用sqlcmd实用工具执行恢复脚本时,文件'file_name.sql'中的命令'X'附近的XYZ行处的'Sqlcmd:错误:语法错误。遇到错误。
原因:
这是sqlcmd实用程序的限制。如果SQL脚本包含任何形式的美元符号($),则该实用程序将无法正确执行该脚本,因为默认情况下它将自动替换所有变量。
解析度:
为了执行带有任何形式的美元符号的脚本,必须在命令行中添加“ -x”参数。
例如
原始文件: sqlcmd -s服务器名-d数据库名-E -ic:\ Temp \ Recovery_script.sql
固定: sqlcmd -s服务器名称-d数据库名称-E -ic:\ Temp \ Recovery_script.sql -x