156

PostDeployment の DACPAC で実行したい 4 つの SQL スクリプトがありますが、そのうちの 3 つの VS プロジェクトをビルドしようとすると、次のエラーが発生します。

Only one statement is allowed per batch. A batch separator, such as 'GO', might be required between statements.

スクリプトINSERTには、DB 上の異なるテーブルのステートメントのみが含まれています。そして、それらはすべてそのように構成されています

IF NOT EXISTS (SELECT 1 FROM dbo.Criteria WHERE Name = 'Mileage') INSERT INTO dbo.Criteria(Name) VALUES ('Mileage');

異なるテーブルと異なるデータのみ。

私の質問は、構文と操作の点ですべてのスクリプトが同じであるのに、VS がそのうちの 3 つについて不平を言うのはなぜですか?

PS: エラーが示すようにステートメント間に 'GO' を追加しても何も起こりません。

4

4 に答える 4

394

問題が見つかりました。Build Action = NoneVS にファイルを追加したときに、ファイルのプロパティから設定するのを忘れていました。これを変更すると問題が修正され、プロジェクトがコンパイルされるようになりました。

于 2013-09-09T13:02:14.790 に答える
-3

各ステートメントの最後から ;(セミコロン) を削除します。よくわかりませんが、上記の挿入ステートメントの間に GO は必要ありません。

于 2013-09-09T12:47:30.303 に答える