0

A と B の 2 つのデータベースがあります。A には、B にも展開する必要があるテーブルが含まれています。ただし、A は常にこれらのテーブルのマスターと見なされる必要があります。スキーマ オブジェクト スクリプトを複製したくありません。A のテーブルを B から単純に参照するのではなく、それらは別個の重複したテーブルである必要があります。

私が見る限り、これを達成するには2つの方法があります。

  1. 部分プロジェクト: 共有スキーマ オブジェクトを部分プロジェクト (.files) ファイルにエクスポートし、それを B のデータベース プロジェクトにインポートします。

  2. 共有スキーマ オブジェクト ファイルをリンクとして B のデータベース プロジェクトに追加します。

どちらにも、ファイルを明示的に指定する必要があるという欠点があります。フォルダーを指定することはできません。つまり、共有が必要なスキーマ オブジェクトが A のデータベース プロジェクトに追加されるたびに、プロジェクトの部分的なエクスポートを再度実行する必要があります。 B のプロジェクトへのリンクとして追加された新しいファイル。

これらの手法の長所と短所は何ですか? 私が見逃したかもしれないこれを達成するためのより良い方法はありますか? ありがとう。

4

1 に答える 1

0

部分プロジェクトはVS2012 RC リリースではサポートされていないため、使用すべきではないと思います。さらに、SQL Server Data Tools (SSDT)内の複合プロジェクトが長期的な解決策になる可能性があります。

dbproj ファイルを手動で編集することにより、フォルダー全体にリンクできることを発見しました。例えば:

<Build Include="..\SourceDatabase\Schema Objects\Tables\*.sql">
  <SubType>Code</SubType>
  <Link>Schema Objects\Tables\%(FileName).sql</Link>
</Build>

これは非常にうまく機能するため、SSDT を評価するまでは、これが推奨されるソリューションになります。私がこれまでに見つけた主な欠点は、ソース データベース プロジェクトに含まれていないファイルを含め、ソース データベースのフォルダー内のすべてのファイルが含まれることです。

于 2012-08-01T16:33:53.683 に答える