web-dev-qa-db-ja.com

Visual Studioデータベースプロジェクトをデータベースと同期させる方法を教えてください。

データベーススキーマをVisual Studio .dbprojデータベースプロジェクトと同期させたいのですが。

現在、ほとんどのデータベース開発作業にSSMSを使用しています。dbスキーマと.dbprojを同期する必要がある場合は、Visual Studioのスキーマ比較ツールを手動で使用する必要があります。なぜこれが欲しいのですか?なぜなら:

  • 変更をチェックインする唯一の方法です
  • 変更を適用する唯一の方法です
  • そうしないと、ファイルを取得するときにいくつかのマージの問題が発生します(基本的に、「最新を取得」に、チェックアウトせずに更新したdbオブジェクトのdb変更が含まれている場合、マージはトリガーされず、簡単にどのバージョンがどれかを追跡する)
  • スキーマの最新バージョンでVisualStudioの検索機能を使用できるのは素晴らしいことです
  • 検索結果を使用して、VS(通常はファイルの名前を変更したとき)からストアドプロシージャを変更できるのは素晴らしいことです。

「スキーマ比較」ツールを自動化して5分ごとに実行する(「クリーン」なソリューションのように聞こえない)以外に、これを達成する方法はありますか?

可能な限りSSMSを使い続けたいのですが、ビジュアルスタジオの「サーバーエクスプローラー/データベース接続」を使用して行った変更を.dbprojに自動的に伝達する方法にも興味があります。

11
Brann

SQL Server Management Studioは、主にSQL Server MANAGEMENTツールであるため、必ずしも目的のシナリオをサポートするように構築されているわけではありません。

Visual Studio Team System 2008 Database Edition およびVisual Studio Team System 2010 Pro/Ultimateには、データベース開発者ツール(VSDB)が含まれており、データベースアセットが豊富なユーザーがデータベーススキーマ/ビュー/ proc/etcを統合するのに役立ちます。アプリ開発での開発。

VSDBを使用すると、既存のDBのスキーマをVisual Studioプロジェクトにリバースエンジニアリングして、スキーマ要素ごとのスクリプトファイルをソース管理できます。 SQL Serverスキーマスクリプトを変更/作成して、SQL 2005/2008/2010でサポートされる実質的にすべてのスキーマ要素を作成することもできます。

VSDBはまた、既存のDB(存在する場合)を変更するために必要な変更のみを適用して膨大な量の作業を行い、既存のDB(存在する場合)の構造を反映するために必要な変更のみを適用しようとする、完全または部分的なDBスキーマの更新を展開する機能もサポートしますソースVSDBデータベースプロジェクト。

VSDBには、DBとDBプロジェクトの間でスキーマを比較するのに役立ついくつかのツールも含まれており、テーブルの内容を比較およびマージすることもできます。

ただし、このツールセットは現在サポートされていますが、チームは解散し、製品はメンテナンスモードになっています。 SQL Server製品グループは現在、開発者向けのツールを作成する責任を負っており、まさにそれを行うために懸命に取り組んでいます:)

4
Richard Turner

これを行うには、VS2010の究極の機能で知っている2つの方法があります。

  1. SSMSまたはその他のツールを使用してDBスキーマを編集し、スキーマ比較を定期的に(1日の終わりに)実行してから、スキーマの変更をDBプロジェクトにインポートします。
  2. VSを介してDBプロジェクトのファイルを編集し、DBで直接実行するか、DBのスキーマを更新するために実行するスクリプトを生成するデプロイメントパッケージを作成します。
1
Ryathal