ローカルPCで実行する必要がある123MBのsqlファイルがあります。しかし、私は得ています
Cannot execute script: Insufficient memory to continue the execution of the program
この問題を解決するには?
メモリを大幅に削減したコマンドラインツールSQLCMDを使用します。次のように簡単です:
SQLCMD -d <database-name> -i filename.sql
SQL Serverインスタンスにアクセスするため、またはデータベースにアクセスするためにも、有効な資格情報が必要です
here から取得。
また、サーバープロパティでクエリあたりの最小メモリ値を単純に増やすこともできます。この設定を編集するには、サーバー名を右クリックして、[プロパティ]> [メモリ]タブを選択します。
SSMS 2012で30MBのSQLスクリプトを実行しようとすると、このエラーが発生しました。値を1024MBから2048MBに増やした後、スクリプトを実行できました。
(これは私が提供したのと同じ答えです here )
問題を正しく理解している場合、xyz.sql(データベース+スキーマ)を(transact sql)復元しようとしています。あなたは私のために働いたこのコマンドを試すことができます:
SQLCMD -U sa -i xyz.sql
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のファイルパス
スクリプトとデータのサイズが大きいため、このタイプのエラーが発生する場合があります。サーバーは実行して結果を出すために十分なメモリを必要とします。クエリごとにメモリサイズを単純に増やすことができます。
[SQLサーバーのプロパティ]> [メモリ]タブ(左側)に移動するだけで、追加する最大メモリ制限を設定できます。
また、上部にある「テキストへの結果」オプションは、「グリッドへの結果」オプションと比較してメモリの消費量が少ないため、メモリへの実行結果を減らすために「結果へのテキスト」を選択することもできます。
以下のスクリプトは完全に機能します。
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
開発中にLocalDBに接続する必要がある場合は、次を使用できます。
sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
sqlcmd -S mamxxxxxmu\sqlserverr -U sa -P x1123 -d QLDB -i D:\ qldbscript.sql
管理者として実行中のコマンドプロンプトを開く
上記のコマンドを入力してください
「mamxxxxxmu」はコンピューター名「sqlserverr」はサーバー名「sa」はサーバーのユーザー名「x1123」はサーバーのパスワード「QLDB」はデータベース名「D:\ qldbscript.sql」はデータベースで実行するsqlスクリプトファイル
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を実行します