SQL Server データベースの整合性をチェックする方法はありますか? データベース内のオブジェクト (ビュー/関数/ストアド プロシージャ) を絶えず変更するこれらの開発者 (OK、私を含む) がいて、オブジェクトの署名を変更したり、オブジェクトをドロップしたりして、他のオブジェクトが無効/コンパイル不能になることがあります。どのオブジェクトが壊れているか、できれば CruiseControl.NET と統合できるものについて、ある種のレポート/アラートを取得したいと考えています。アイデア?
3 に答える
必要なのは、CruiseControl.NET を介して実行できるデータベース単体テストだと思います。tSQLt ( http://tsqlt.org ) の使用をお勧めします。RedGate は、この製品の上に素敵な GUI も販売していますが、必要な機能を得るために必須ではありません。( http://www.red-gate.com/products/sql-development/sql-test/
Olla Hallengran は、データベースの整合性をチェックする優れた方法を提供します。http://ola.hallengren.com/sql-server-integrity-check.htmlを参照 してください。
あなたが説明する問題は一般的です.複数の開発者がデータベースで作業することには問題があります。
私の知る限り、あなたが言及した方法でデータベースオブジェクトの整合性をチェックする簡単な方法はありません.ストアドプロシージャ間の依存関係などはコンパイル時に解決され、その依存関係が有効でない場合、procはエラーを返します.実行時間。すべてのプロシージャ、関数、ビューなどを再コンパイルして、バッチ中にエラーをフラッシュできます。
ただし、問題はデータベースの整合性をチェックする必要があることではなく、そもそもその整合性に関する問題を回避するためのプロセスがないことです。
これには、問題を最小限に抑える解決策がいくつかあります。どちらに進むかは、開発のセットアップによって異なります。このプロセスは、一般に「継続的なデータベース統合」として知られています。
Jeff Atwood はかなり前に概要を提供し、少し前に更新を提供しました (リンクを確認してください)。また、Redgate ツールも見てください。これらのツールを使用すると、プロセスが非常に簡単になります。