データベースに 10 個のテーブルのセットがあります ( DB1
)。DB2
また、別のデータベース ( ) には、同じ SQL Server 2008 R2 データベース サーバー マシン上にまったく同じスキーマを持つ10 個のテーブルがあります。
の 10 個のテーブルはDB1
、データで頻繁に更新されます。
DB1
で 10 個のテーブルを同期するために、毎日 1 回実行されるストアド プロシージャを作成するつもりですDB2
。ストアド プロシージャはMERGE
ステートメントを利用します。
今、私の目標は、これを可能な限り一般的でパラメータ化することです。つまり、今後さらに多くのテーブルに対応し、さまざまなソース DB 名とターゲット DB 名に対応します。間違いなく、ハードコーディングは意図されていません。
これまでの私のアルゴリズムは次のとおりです。
- データベース名をパラメーターとして持つ
- ストアド プロシージャ内で最初のクエリを実行すると、ルックアップ テーブルから 10 個のテーブルの名前が返されます (これは 10、20、または何でもかまいません)。
- 上記の一連のテーブルのそれぞれに対して同期を行う一般的な
MERGE
ステートメントがあります (主キーに基づいていますか?)
これは、さらに入力が必要な場所です。
このストアド プロシージャを実現する最善の方法は何ですか? SQL 構文が役立ちます。