104

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

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

ここに画像の説明を入力

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

4

12 に答える 12

36

それはあなたを助けるかもしれません!以下の手順を参照してください。

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

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

ここに画像の説明を入力

于 2016-03-30T09:45:02.657 に答える
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を含むすべてをロードしました

*NB: コマンドを管理者として実行します

于 2019-02-26T11:59:28.467 に答える
5

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

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

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

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

また、上部に「結果をテキストに」というオプションがあり、「結果をグリッドに」オプションと比較してメモリの消費量が少なくて済みます。結果をテキストに変換して実行するメモリを少なくすることもできます。

于 2016-10-06T06:19:41.400 に答える
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 サーバー名 -d データベース名 -E -ic:\Temp\Recovery_script.sql

修正済み: sqlcmd -s サーバー名 -d データベース名 -E -ic:\Temp\Recovery_script.sql -x

于 2018-07-04T06:54:13.723 に答える
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 に答える