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

Posted

技术标签:

【中文标题】无法执行脚本:内存不足,无法继续执行程序【英文标题】:Cannot execute script: Insufficient memory to continue the execution of the program 【发布时间】:2013-07-28 22:22:15 【问题描述】:

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

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

如何解决这个问题?

【问题讨论】:

@marc_s 当我单击 Ctlr+E 时,它立即显示此错误 Getting error while running 50 MB script on SQL Server 2008 R2的可能重复 【参考方案1】:

使用更节省内存的命令行工具 SQLCMD。很简单:

SQLCMD -d <database-name> -i filename.sql

您需要有效的凭据才能访问您的 SQL Server 实例,甚至访问数据库

取自here。

【讨论】:

使用完整凭据,指定数据库和服务器:sqlcmd -S -U -P -d -i 我收到这个问题:“INSERT 语句中的行值表达式的数量超过了允许的最大行值数 1000。” 添加 -e 以获得可信连接【参考方案2】:

如果我正确理解您的问题,您正在尝试恢复 (transact sql) xyz.sql - 数据库 + 架构。你可以试试这个对我有用的命令:

SQLCMD -U sa -i xyz.sql

【讨论】:

【参考方案3】:

您还可以简单地增加服务器属性中的每个查询的最小内存值。要编辑此设置,请右键单击服务器名称并选择属性 > 内存选项卡。

我尝试在 SSMS 2012 中执行 30MB SQL 脚本时遇到此错误。将值从 1024MB 增加到 2048MB 后,我能够运行该脚本。

(这是我提供的相同答案here)

【讨论】:

【参考方案4】:

也许对你有帮助!请参阅以下步骤。

sqlcmd -S 服务器名 -d 数据库名 -i script.sql

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

【讨论】:

你可以添加用户名 -sa 和密码 -123 , sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql 它给我错误Sqlcmd:错误:Mircorsoft SQL Server Native Client 10.0:由于预登录失败,客户端无法建立连接。【参考方案5】:

有时,由于脚本和数据过大,我们会遇到此类错误。服务器需要足够的内存来执行并给出结果。我们可以简单地增加每个查询的内存大小。

你只需要进入 sql server 属性 > 内存选项卡(左侧)> 现在设置你要添加的最大内存限制。

另外,顶部有一个选项“结果到文本”,与“结果到网格”选项相比,它消耗的内存更少,我们也可以选择结果到文本以减少内存执行。

【讨论】:

【参考方案6】:

sqlcmd -S mamxxxxxmu\sqlserverr -U sa -P x1123 -d QLDB -i D:\qldbscript.sql

以管理员身份运行时打开命令提示符

输入上面的命令

“mamxxxxxxmu”是计算机名称 “sqlserverr”是服务器名称 “sa”是服务器的用户名 “x1123”是服务器密码 “QLDB”是数据库名称 “D:\qldbscript.sql”是要在数据库中执行的sql脚本文件

【讨论】:

【参考方案7】:

试试这一步,

1)打开 PowerShell

2)编写这个命令:

sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql

3)按回车

:-)

【讨论】:

【参考方案8】:

如果在开发过程中需要连接LocalDB,可以使用:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql

【讨论】:

【参考方案9】:

以下脚本完美运行:

sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

症状:

使用 sqlcmd 实用程序执行恢复脚本时,遇到“Sqlcmd: Error: Syntax error at line XYZ near command ‘X’ in file ‘file_name.sql’.”错误。

原因:

这是一个 sqlcmd 实用程序限制。如果 SQL 脚本包含任何形式的美元符号 ($),该实用程序将无法正确执行该脚本,因为默认情况下它会自动替换所有变量。

分辨率:

为了以任何形式执行带有美元($)符号的脚本,需要在命令行中添加“-x”参数。

例如

原文: sqlcmd -s 服务器名 -d 数据库名 -E -ic:\Temp\Recovery_script.sql

固定: sqlcmd -s 服务器名 -d 数据库名 -E -i c:\Temp\Recovery_script.sql -x

【讨论】:

$ 评论很有帮助。谢谢【参考方案10】:

对于 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的文件路径

【讨论】:

【参考方案11】:

我的数据库大于 500mb,然后我使用了以下

C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql

它加载了包括 SP 在内的所有内容

*NB:以管理员身份运行 cmd

【讨论】:

【参考方案12】:

与此处给出的大多数答案一样,使用命令行工具。在我的例子中,脚本已经有数据库创建代码。如果您的脚本包含CREATE DATABASE 命令,例如

USE [master]
GO
CREATE DATABASE [your-database-name]

那么不要使用-d your-database-name,而是使用以下命令。

对于 Windows 身份验证,使用命令

sqlcmd -S ServerName\InstanceName -i "script.sql" -x

对于 SQL Server 身份验证,请使用命令

sqlcmd -S ServerName\InstanceName -U usename -P password -i "script.sql" -x

【讨论】:

以上是关于无法执行脚本:内存不足,无法继续执行程序的主要内容,如果未能解决你的问题,请参考以下文章

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

sql server 执行上100mb sql sql sql server 无法执行脚本 没有足够的内存继续执行

求问 BAT脚本如何自动执行 adb shell 以后的命令

MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法

MSSQL执行大脚本文件时,提示“内存不足”的解决办法

appium启动手机app后怎么执行脚本