我有一个 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
如何解决这个问题?
使用更精简内存的命令行工具 SQLCMD。它很简单:
SQLCMD -d <database-name> -i filename.sql
您需要有效的凭据才能访问您的 SQL Server 实例,甚至访问数据库
取自这里。
对于 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 的文件路径
您还可以简单地增加服务器属性中的每个查询的最小内存值。要编辑此设置,请右键单击服务器名称并选择属性 > 内存选项卡。
我在尝试在 SSMS 2012 中执行 30MB SQL 脚本时遇到此错误。将值从 1024MB 增加到 2048MB 后,我能够运行该脚本。
(这与我在这里提供的答案相同)
我的数据库大于 500mb,然后我使用了以下
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
它加载了包括 SP 在内的所有内容
*注意:以管理员身份运行 cmd
如果我正确理解您的问题,您正在尝试恢复(事务 sql)xyz.sql - 数据库 + 架构。你可以试试这个对我有用的命令:
SQLCMD -U sa -i xyz.sql
有时,由于脚本和数据的大小,我们会遇到这种类型的错误。服务器需要足够的内存来执行并给出结果。我们可以简单地增加每个查询的内存大小。
您只需要转到 sql server 属性 > 内存选项卡(左侧)> 现在设置您要添加的最大内存限制。
此外,顶部有一个选项“结果到文本”,与“结果到网格”选项相比,它消耗的内存更少,我们也可以选择结果到文本以减少内存执行。
以下脚本完美运行:
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 Server_name -d Database_name -E -ic:\Temp\Recovery_script.sql
修正: sqlcmd -s Server_name -d Database_name -E -ic:\Temp\Recovery_script.sql -x
sqlcmd -S mamxxxxxmu\sqlserverr -U sa -P x1123 -d QLDB -i D:\qldbscript.sql
在以管理员身份运行时打开命令提示符
输入上面的命令
“mamxxxxxxmu”是计算机名称 “sqlserverr”是服务器名称 “sa”是服务器的用户名 “x1123”是服务器的密码 “QLDB”是数据库名称 “D:\qldbscript.sql”是要在数据库中执行的 sql 脚本文件
如果在开发过程中需要连接LocalDB,可以使用:
sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
与此处给出的大多数答案一样,使用命令行工具。在我的情况下,脚本已经有数据库创建代码。如果您的脚本包含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