ローカルPCで実行する必要のある123MBのSQLファイルがあります。しかし、私は得ています
Cannot execute script: Insufficient memory to continue the execution of the program
この問題を解決するにはどうすればよいですか?
ローカル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インスタンスにアクセスしたり、データベースにアクセスしたりするには、有効な資格情報が必要です。
ここから撮影。
-e
信頼できる接続を追加
Windows認証の場合は、このsqlcmdを使用します
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
注: SQLファイルのパスにスペースがある場合は、「(引用符)」を使用してください。
SQL Server認証の場合、このsqlcmdを使用します
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS:ここでSQLServer名を指定します
-U sa:ユーザー名(SQL Server認証の場合)
-P sasa:パスワード(SQL Server認証の場合)
-d AdventureWorks2018:データベース名はここにあります
-i "d:\ document \ sql document \ script.sql": SQLFileのファイルパス
私があなたの問題を正しく理解しているなら、あなたはxyz.sql-データベース+スキーマを復元しようとしています(トランザクションSQL)。あなたは私のために働いたこのコマンドを試すことができます:
SQLCMD -U sa -i xyz.sql
私のデータベースは500MBを超えていたので、次のものを使用しました
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
SPを含むすべてをロードしました
*注意:管理者としてcmdを実行します
スクリプトとデータのサイズが大きいために、このタイプのエラーが発生することがあります。サーバーは、実行して結果を出すのに十分なメモリを必要とします。クエリごとに、メモリサイズを単純に増やすことができます。
SQLサーバーのプロパティ> [メモリ]タブ(左側)に移動する必要があります>次に、追加する最大メモリ制限を設定します。
また、上部に「結果からテキスト」というオプションがあり、オプション「結果からグリッド」に比べてメモリの消費量が少なくなります。また、結果からテキストに移動してメモリの実行を減らすこともできます。
以下のスクリプトは完全に機能します。
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 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