最近、SQL Server プロジェクトの 1 つを Visual Studio データベース プロジェクトに移動しましたが、ストアド プロシージャが無効なテーブル、テーブル エイリアス、または列を参照してもビルドに失敗しないため、何か問題があると思います。構文自体が正しくない場合にのみ失敗します。
たとえば、次の例は問題なくコンパイルされます (CREATE PROC などは削除されます) が、A、B、C、および D は存在しません。
SELECT A.B FROM C WHERE D = 'nope'
しかし、これは(予想どおり)失敗します:
SELECT A.B FROM C WHERE D IS 'nope'
そのため、無効な列またはテーブルを参照するストアド プロシージャを簡単に作成できますが、それを展開しようとするまではわかりません。これは、多くのオブジェクトを変更していて、オール オア ナッシングの展開が必要な場合に問題を引き起こす可能性があります。 . また、デプロイせずにビルド サーバーを使用してスキーマを検証することはできませんが、データベースが機能し続けることを確認するために、もう一方を試す前に一方を実行したいと考えています。
これに最も近いのはコード分析 ([プロジェクト] -> [プロパティ]) ですが、これはエラーをキャッチするよりもベスト プラクティスを対象としています。
VS は既存のスキーマ ファイルを使用してコードが正しいかどうかを確認できませんか? この設計時の分析と検証は、データベース プロジェクトの主なセールス ポイントではないでしょうか。
関連する場合、私は VS 2010 Premium で作業しています。