Red Gate を使用して、デプロイ用のスクリプトを生成し、バージョン管理を制御します。
"配置" と "バージョン管理" は、SQL コードでは別の問題です。
注意すべき重要事項: 本番データベースは、すべてのデータを含むマスターです。そのため、テスト サーバーへの定期的なコピーを配置し、これをベースラインとして使用します。NUnit によって毎晩基本データが生成されるデータベース (見て、笑った) は、一般的には役に立ちません。10 億の行があり、それに対してクエリをテストする必要がある場合はどうすればよいでしょうか?
バージョニング: Red Gate ツールを使用してスキーマをベースラインとして生成し、これをこのコピー (または QA など) と比較できます。Red Gate ツールを使用すると、フォルダーと比較できます。フォルダーは、この場合、SVN の管理下にあり、リリースごとに更新されます。したがって、すべてのオブジェクトの完全な履歴があります
展開: クリーンな「ビルド」DB に対して開発スクリプト (同じく SVN) を適用し、別のクリーンな DB と比較します。これがデプロイ スクリプトになります。
もちろん、これはかなり単純化されています。
プロ版は同期と比較のための API を提供するため、必要に応じてツール チェーンに統合できます。GUI は必要ありません。ちなみに、これを使用して、クライアント コードを備えた特別なユーザー サンドボックスのワンクリック同期を提供します。
Remus が述べたように、一部の操作では絶対確実ではありません。1.5 TB のテーブルの内容を変更する場合は、私のスクリプトを愛情を込めてハンドコーディングします。もう 1 つのいらだちは、Red gate のツールには、関連するビューまたは udf に SCHEMABINDING をドロップして、単に制約の変更をチェックする習慣があることです。
インスピレーションを得るために、Martin Fowler の「Evolutionary Database Design」を読むこともお勧めします。