データベース A からデータベース B にデータをインポートするストアド プロシージャがあります。顧客がいて、すべて独自のデータベース B (同じテーブルなど) を持っています。また、独自のデータベース A も持っています。ストアド プロシージャは次のようになります。データベース B で実行 (デプロイ) されます。
問題:
各顧客は、A と B に別のデータベース名を持っています。また、データベース A が別のサーバー/インスタンス上にある可能性があることもわかりました。サーバー/インスタンス名と A からのデータベース名をストアド プロシージャに自動的に配置して、そこからデータを選択する一般的な方法が必要です。すべての顧客は、データベース B に既に存在するデータベース A への接続文字列を持っています。したがって、接続文字列から、サーバー/インスタンス名と A のデータベース名を取得できます (既にリンク サーバーを作成しています)。
1. テーブル名の前にサーバー/インスタンス名とデータベース名を付ける最良の方法は何ですか??
ストアド プロシージャ ストアド プロシージャ
では、多くの変数 (宣言) テーブルを使用して、データベース A からデータを挿入しました。動的 SQL の使用に関する記事はたくさんありますが、宣言テーブルの例を見つけることができません。
私の解決策
データベースAのすべてのデータを変数テーブルに挿入することを考えています。私は7つのテーブルからデータをインポートしているので、7つのテーブルを宣言する必要があり、さらにSPで宣言テーブルからデータを選択できます。ホール ストアド プロシージャは非常に大きいことに注意してください。
質問
2.私の解決策についてどう思いますか?
3.別の解決策はありますか?
4.動的SQLを使用して宣言テーブルに挿入するにはどうすればよいですか?
**SQL Server 2005 を使用していることに注意してください。
I have a few statements like below:
declare @Temp table (Id int, etc
insert into @Temp (Id, etc)
Select Id, etc
From [databasename].dbo.TableName //hardcoded
Where .......
// doing staff like selecting from the @Temp table etc.
I also have subqueries, but I can change if it is necessary.