104

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

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

在此处输入图像描述

如何解决这个问题?

4

12 回答 12

139

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

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

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

取自这里

于 2013-07-29T09:46:08.597 回答
36

它可能对你有帮助!请参阅以下步骤。

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

  • 以管理员身份打开 cmd.exe。
  • 创建文档目录。
  • 将您的 SQL 脚本文件 (script.sql) 放在文档文件夹中。
  • 使用 sqlcmd、服务器名称、数据库名称和脚本文件名称键入查询,如上面突出显示的查询或命令行屏幕下方。

在此处输入图像描述

于 2016-03-30T09:45:02.657 回答
17

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

于 2018-07-27T19:45:49.920 回答
13

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

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

(这与我在这里提供的答案相同)

于 2014-03-04T22:01:51.670 回答
6

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

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

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

*注意:以管理员身份运行 cmd

于 2019-02-26T11:59:28.467 回答
5

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

SQLCMD -U sa -i xyz.sql
于 2014-01-23T15:44:11.930 回答
3

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

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

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

于 2016-10-06T06:19:41.400 回答
3

试试这一步,

1)打开PowerShell

2)写这个命令:

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

3)按回车

:-)

在此处输入图像描述

于 2017-11-14T10:06:31.373 回答
3

以下脚本完美运行:

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

于 2018-07-04T06:54:13.723 回答
1

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

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

  • 输入上面的命令

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

于 2017-11-09T09:15:40.847 回答
1

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

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
于 2018-04-03T13:50:42.497 回答
1

与此处给出的大多数答案一样,使用命令行工具。在我的情况下,脚本已经有数据库创建代码。如果您的脚本包含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
于 2021-09-30T06:07:01.163 回答