私の公開の試みはこのエラーで失敗しています
メッセージ205、レベル16、状態1、行7572 UNION、INTERSECT、またはEXCEPT演算子を使用して結合されたすべてのクエリは、ターゲットリストに同数の式が含まれている必要があります。
印刷するための昔ながらのアドバイス 展開スクリプトの実行間のステータスメッセージを取得して、これに絞り込みました。
SQL Serverの癖が原因で行番号が一致しないため、異教徒のようにPRINT
する必要があります(上記のリンクを参照)。
文字通り実行されたステートメントがなかったことに注意してください。また、何も実行されなかったことを確認する詳細なトレースを実行しました。
2つのPRINT
ステートメント間の制御フローステートメントがエラーを引き起こす可能性があるのはなぜですか?!
GO
ステートメントが成功したコードを残りのコードから分離したことが判明しました。残りのコードには実際にエラーステートメントが含まれているため(エラーメッセージに従って)、構文検証中にエラーがスローされました。
GO
ステートメントの行番号を取得し、エラーメッセージに示されている行番号(実際にはバッチのオフセット)を追加すると、悪いMERGE
ステートメントが見つかりました。 SSDT公開結果のエラーメッセージをクリックすると、公開スクリプトのランダムな場所に移動します。
そのため、ステートメントのバッチ処理が原因で、構文検証が最終的にデプロイメントスクリプトで実行されました(SQLプロジェクトでのビルドから除外されています)。