0

背景情報:

異なる SQL サーバー間でストアド プロシージャを同期するためのバッチ ジョブを設定しようとしています。すべてのストアド プロシージャを別の .sql ファイルにエクスポートして、自分のフォルダーに入れました。新しいストアド プロシージャを作成したり、それらの複数のサーバー用に変更したりするときはいつでも、希望どおりになるまで 1 つのサーバーでテストします。その後、自分のフォルダーにエクスポートします。それを他のサーバーに展開するには、バッチを実行するだけです。それだけです。


私は自分のバッチを思い通りにほぼ把握しました。唯一の問題は、sqlcmd が標準のバッチ セパレータ 'GO' ( 'Incorrect syntax near 'GO'.') を好まないように見えることです。そのため、デフォルトのバッチセパレーターを「RUN」に変更し、.sql ファイルの各「GO」コマンドを「RUN」に置き換え-c RUNて、sqlcmdコマンドに追加しました。

しかし、それは私に教えてくれ'Incorrect syntax near 'RUN'.'ます。

テスト目的で、次のように縮小された1つのSQLファイルで試してみました。

USE [MyDatabase]
GO

それでもうまくいきませんでした。どうすればそれを機能させることができますか?

4

1 に答える 1

0

これらのスクリプトを除外GOまたは除外してみてください。RUNそれらがなくてもデータベース コンテキストを変更できます。

次のようなことをしても問題ありません。

USE MyDatabase;
--First query

USE MyOtherDatabase;
--Second query
于 2013-05-25T01:28:16.267 に答える