1

これがdb 101であることはわかっていますが、私にとってはそれほど明確ではありません。私は SQL2005 Express を使用しており、databaseA から databaseB にデータをコピーしたいと考えています。DatabaseB にはすでに既存のデータが含まれています。変更された、または存在しない pk を持つデータが含まれている場合もあります。たとえば、次のようになります。

データベース A pk1 = モモ pk2 = リンゴ

データベース B pk1 = モモ pk2 = オレンジ pk3 = リンゴ

現在、A と B の両方に、pk に関連付けられた関連テーブルがあります。

歴史的には、A からデータを選択し、その挿入/更新プロシージャ (.NET を使用) を介して B にコピーするアプリを作成しますが、明らかにこれは非常に面倒です。いくつかの利点は、選択できるドロップダウンを使用できることです。 A をコピーし、B が存在する場合はコピーするか、新規追加と言います。たとえば、次のようになります。

(ドロップダウン - ソースを選択) 桃 りんご

(ドロップダウン - ターゲットを選択) -new- 桃 オレンジ リンゴ

私はSSISを使用するつもりでしたが、ターゲットデータベースにはSQL Expressしかないため、これは利用できず、学習する時間もありません(以前はdtsをよく使用していましたが、この新しいツールは使用していません)。SQL2000 では DTS を使用するだけでしたが、より複雑なスキーマでは、それを信頼できるかどうかさえわかりません。

A から B にデータを移行するためのカスタム アプリを引き続き作成する必要がありますか?

みんなの提案を楽しみにしています - 私はこれを行うための最良の方法だと思う道を進みたいと思っています:-)

4

4 に答える 4

1

サーバーが同じネットワーク上にある場合は、リンクサーバーを追加します(オンラインのTransact SQLブックで検索してください)。次に、2つのサーバー間でクエリを実行できます。

SQL Server 2005 Expressには、SSISが含まれていないという点で問題があります。ただし、BCP(一括コピー、オンラインのTransact SQLブックでもこれを調べてください)を使用して、ターゲットサーバー上の別のテーブルにデータをコピーすることもできます。それはおそらくあなたのパスにあるので、dosからbcp /?と入力できます。オプションのリストを取得します。データがターゲットサーバーのテーブルに配置されると、そのデータに対してクエリを実行できます。

キー間のマッピングを作成する必要があります。桃/りんごから桃/オレンジ/りんごをどうやって手に入れるのかわかりません。確かにいくつかのビジネスロジックがあります。サーバーをリンクするか、1つのサーバーでデータを取得したら。ビジネスロジックを使用して、古い主キーを新しいキーにマップすることができます。または、手動で入力したマッピングテーブル(oldkey、newkey)または(oldkey1、oldkey2、newkey1、newkey2、newkey3)。

于 2008-10-17T16:21:03.117 に答える
1

SQL 2008 には、変更データキャプチャと呼ばれる興味深い機能があります。

于 2009-05-25T15:53:43.890 に答える
0

マージ レプリケーションを調べることができます - http://msdn.microsoft.com/en-us/library/ms165713(SQL.90).aspx

いつも一方通行ですか?A→B?

注意として、SSIS を取得できる場合は、少し時間をかけて学習する必要があります。DTS imhoよりも優れています。

于 2008-10-20T18:39:39.827 に答える
0

SQL Server Express の制限についてあまり詳しくありませんが、バックアップできますか? そして、別のデータベースとしてインポートしますか?

于 2008-10-17T17:15:19.590 に答える