あるデータベース (SQL サーバー 2008) から別のデータベース (SQL サーバー 2008) に別のスキーマでデータを転送するための最良の方法は何ですか?
それを行うためのプログラムはありますか?
ありがとう 4 あなたの将来の答え
よろしくお願いします
あるデータベース (SQL サーバー 2008) から別のデータベース (SQL サーバー 2008) に別のスキーマでデータを転送するための最良の方法は何ですか?
それを行うためのプログラムはありますか?
ありがとう 4 あなたの将来の答え
よろしくお願いします
ニーズの複雑さに応じて、SSISの使用を検討することをお勧めします。
これを行うには、SSIS(SQLサーバーに付属)を使用します。ただし、これは簡単でも迅速な作業でもありません。あるスキーマから別のスキーマへのマッピングには非常に時間がかかる可能性があり、処理する必要のあるスキーマから別のスキーマに適合しないデータがほぼ確実に見つかります。たとえば、フィールドが最初のスキーマでvarcharであり、2番目のスキーマでdatetimeである場合、特にフィールドが必須フィールドである場合に問題となる可能性のある不正な値( "ASAP"など)を除外する必要があります。実際、これらのタイプのミスマスにも対処する必要があります。それが必要でなく、現在の場合、現在のレコードにどのような価値を入れますか。null
。フィールドサイズが一致しない場合はどうしますか。データを切り捨てる必要がある場合があります。ルックアップ値が異なる場合は、変換テーブルが必要です。子テーブルを適切にロードできるように、古いIDフィールドと新しいIDフィールドを関連付けるための変換テーブルが必要になる場合があります。これは非常に複雑な作業です。
ソース サーバーを宛先サーバーにリンクします。次に、dest サーバーから、次のような独自のクエリを実行できます。
INSERT INTO Destination_Table (col1, col2, col3)
SELECT colA, colB, colC
FROM [SRC_MACHINE\SRC_SERVER].Source_Database.dbo.Source_Table
クエリの作成に慣れている場合は、ネストされた SELECT にすべてのデータ変換 (必要な場合) を含め、JOIN などを操作して、選択したデータ構造を宛先スキーマに適合させることができます。
両方のサーバーが SQL Server Express (SSIS に同梱されていない) を実行している場合でも実行可能です。 リンク サーバーに関するドキュメント