无法执行脚本:内存不足,无法继续执行程序

时间:2013-07-29 07:58:52

标签: sql tsql sql-server-2012

我有一个123MB的sql文件,我需要在本地PC上执行。但我得到了

Cannot execute script: Insufficient memory to continue the execution of the program

enter image description here

如何解决这个问题?

12 个答案:

答案 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

  • 以管理员身份打开cmd.exe。
  • 创建文档目录。
  • 将您的SQL脚本文件(script.sql)放在documents文件夹中。
  • 使用sqlcmd,server-name,database-name和script-file-name键入查询,如上面突出显示的查询或下面的命令行界面所示。

enter image description here

答案 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

: - )

enter image description here

答案 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