web-dev-qa-db-ja.com

SQL Server-スキーマを個別のファイルにダンプして、インストール順序を維持する

SQL Serverのスキーマをダンプするとき、これらの2つのオプションがあります。単一ファイルまたは複数ファイルです。クリーンなサーバーにスキーマをインストールするために使用できるため、単一のファイルで十分です。インストール中に問題が発生しないように、親が子の前にインストールされます。一方、個別のファイルはバージョン管理が可能であり、変更されたオブジェクト(テーブル、ビュー、プロシージャ)を簡単に識別できるため適切ですが、依存関係の順序は失われます。

すべてのオブジェクトを別々のファイルに入れ、同時に依存関係の順序を維持するという、両方の長所を持つ方法はありますか?新しいプロジェクトを開始するためのベストプラクティスではなく、何年も放置した後にバージョン管理する必要がある既存のスキーマについて質問しています。

2

これを実行するための最良の方法は、ツールを使用して、ソース管理の内外にあるものを取得して展開するプロセスを管理することです。

MSDNライセンスをお持ちの場合、Visual Studioにはこれを実行できるデータベースプロジェクトがあります。それはライセンスで無料で、かなりうまくいきます。特にデータの損失につながる可能性のあるコードの処理に関しては、いくつかの制限があります。このような場合、手動による介入が必要になることがあります。また、Azure Data StudioまたはSQL Server Management Studioを使用する方法がないため、Visual Studio内でデータベースの一部の作業を行う必要があります。ただし、このアプローチは依存関係の問題を解決します。

サードパーティのソリューションもあります。私はベンダーの一部であるRedgateで働いています。データ損失の問題を解決し、SSMS(およびすぐにADS)内で作業します。他のベンダーもいます(私たちのほうが優れていると思います)。これらのツールは依存関係の問題も解決しますが、個別のファイルを使用できるため、ソース管理ツールを介してすべての変更を個別に追跡できます。

2
Grant Fritchey