web-dev-qa-db-ja.com

スクリプトを実行できません:プログラムの実行を継続するにはメモリが不足しています

ローカルPCで実行する必要がある123MBのsqlファイルがあります。しかし、私は得ています

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

enter image description here

この問題を解決するには?

69
user960567

メモリを大幅に削減したコマンドラインツールSQLCMDを使用します。次のように簡単です:

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

SQL Serverインスタンスにアクセスするため、またはデータベースにアクセスするためにも、有効な資格情報が必要です

here から取得。

103

役立つかもしれません!以下の手順をご覧ください。

sqlcmd -Sサーバー名-dデータベース名-i script.sql

  • Cmd.exeを管理者として開きます。
  • ドキュメントディレクトリを作成します。
  • SQLスクリプトファイル(script.sql)をドキュメントフォルダーに配置します。
  • 上記の強調表示されたクエリまたはコマンドライン画面の下のように、sqlcmd、server-name、database-name、およびscript-file-nameでクエリを入力します。

enter image description here

25
Anil Singh

また、サーバープロパティでクエリあたりの最小メモリ値を単純に増やすこともできます。この設定を編集するには、サーバー名を右クリックして、[プロパティ]> [メモリ]タブを選択します。

SSMS 2012で30MBのSQLスクリプトを実行しようとすると、このエラーが発生しました。値を1024MBから2048MBに増やした後、スクリプトを実行できました。

(これは私が提供したのと同じ答えです here

8
dstetsenko

問題を正しく理解している場合、xyz.sql(データベース+スキーマ)を(transact sql)復元しようとしています。あなたは私のために働いたこのコマンドを試すことができます:

SQLCMD -U sa -i xyz.sql
5
user3228486

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のファイルパス

4

スクリプトとデータのサイズが大きいため、このタイプのエラーが発生する場合があります。サーバーは実行して結果を出すために十分なメモリを必要とします。クエリごとにメモリサイズを単純に増やすことができます。

[SQLサーバーのプロパティ]> [メモリ]タブ(左側)に移動するだけで、追加する最大メモリ制限を設定できます。

また、上部にある「テキストへの結果」オプションは、「グリッドへの結果」オプションと比較してメモリの消費量が少ないため、メモリへの実行結果を減らすために「結果へのテキスト」を選択することもできます。

2

以下のスクリプトは完全に機能します。

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 -i c:\ Temp\Recovery_script.sql

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

1
Nimesh khatri

開発中にLocalDBに接続する必要がある場合は、次を使用できます。

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

このステップを試してください、

1)PowerShellを開く

2)次のコマンドを記述します。

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

3)Returnキーを押す

:-)

enter image description here

1
daniele3004

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

  • 管理者として実行中のコマンドプロンプトを開く

  • 上記のコマンドを入力してください

「mamxxxxxmu」はコンピューター名「sqlserverr」はサーバー名「sa」はサーバーのユーザー名「x1123」はサーバーのパスワード「QLDB」はデータベース名「D:\ qldbscript.sql」はデータベースで実行するsqlスクリプトファイル

1
Mahmaood ali

SQLServer Management Studio 17.6をダウンロードし、スクリプトを実行してください。ダウンロードリンク https://go.Microsoft.com/fwlink/?linkid=870039 うまくいきました。 214 MBのファイルがありました。

私のデータベースは500MBを超えていたので、次を使用しました

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

SPを含むすべてをロードしました

* NB:管理者としてcmdを実行します

0