13

私のデータベース プロジェクトでは、リンク サーバーへの参照を追加しました。このリンク サーバーをビューで使用してデータベース プロジェクトをビルドしようとすると、SSDT はリンク サーバーで参照されているスキーマへの参照を認識できないため、次のエラーが報告されます。

[LinkedServer].[DB1].[dbo].[Table1]

上記は、SSDT が への参照を解読できないというエラーを返します[DB1].[dbo].[Table1]。このデータベースへの参照を追加しようとしましたが、SSDT には.dacpacファイル (別のデータベース プロジェクトによって作成されたもの) またはプロジェクトのデータベースと同じサーバー上のシステム データベースが必要でした。

外部データベースの参照を処理するにはどうすればよいですか? プロジェクトがSSDT データベース プロジェクトではないリモート データベースを参照する必要がある場合があります。私の場合、他社のデータベースにアクセスしており、SSDT プロジェクトとしてこのデータベースをバージョン管理下に置くことは論外です。

4

2 に答える 2

15

リモート データベース用の新しい SQL プロジェクトを作成し、参照する必要があるオブジェクトをプロジェクトに配置し (データベース全体である必要はありません)、そのプロジェクトをデータベース参照としてプロジェクトに追加します。リモート データベースをデプロイする必要はありません。参照できるように、使用するオブジェクトの定義を用意するだけです。

于 2013-04-05T03:12:38.937 に答える
4

最終的に決定したオプションは、データのインポートに SSIS を使用することでした。このように、リモート データの転送は ETL レイヤーで行われました。私たちのデータベースは、この方法でリモートデータベースを参照していませんでした。これにより、パフォーマンスも向上します (ネットワーク経由の転送、クロスサーバー結合などを排除します)。

SSIS または同様の方法を使用して、データベース プロジェクトが参照できるローカル テーブルにデータを ETL することをお勧めします (外部プロジェクト参照は必要ありません)。

于 2013-04-05T15:35:43.157 に答える