2012-02-23 9 views
3

私は以下の問題を抱えています:私は2つのデータベースを持っています。DB1DB2としましょう。
私はDB1ではSQL Serverの2008R2主キーをコピーせずにデータをエクスポート/生成するにはどうすればよいですか?

を使用している私が持っている:

tblPerson DB2

ID Value 
    1 Jake 
    2 Sandra 

は私が持っている:

ID Value 
    1 Jef 
    2 Kendra 

私はエクスポートまたは生成したいですスクリプトを使用するか、次のツールになります。

ID Value 
    1 Jake 
    2 Sandra 
    3 Jef 
    4 Kendra 

しかし、私はいつもこのような結果を得る:

DB1

ID Value 
    1 Jake 
    2 Sandra 
    1 Jef 
    2 Kendra 

を私が試した:

  • 輸出
  • するスクリプトを生成します(上のプロパティのアイデンティティインサート付き)主キーを生成してオフにする

これのためのツールはありませんか、それは不可能であり、手ですべてを行う必要がありますか?

+3

サンドラに何が起こりましたか? –

+0

コピー貼り付けエラーty;) – dg90

答えて

1

あなたは、残念ながら、あなたが使用している、SQL Serverのどのバージョン言っていない - あなたは、SQL Serverにしている場合を2005または新しいを使用すると、次のようなものを使用できます。

;WITH CombinedData AS 
(
    SELECT DBNr = 1, ID, Value 
    FROM DB1.dbo.tblPerson 

    UNION ALL 

    SELECT DBNr = 2, ID, Value 
    FROM DB2.dbo.tblPerson 
) 
SELECT 
    ROW_NUMBER() OVER (ORDER BY DBNr, ID) AS 'NewID', 
    Value 
FROM 
    CombinedData 

出力にあなたにこのような何かを与える:新しいテーブルが自動アイデンティティにそのIDセットを有する

NewID PersonName 
    1  Jake 
    2  Sandra 
    3  Jef 
    4  Kendra 
+0

私が得た問題は、2つの同等のDBを別々のプロダクションに持っていることです。だから彼らはデータがお互いに等しくない。今私は、あるDBからのデータが他のDBのデータを補完することを望みます。しかし私は依存関係などを持っているので、私はマイグレーションツールを探したり、私の質問のように手作業で行う必要があります。これらの例では難しくなります – dg90

+0

@daageu:あなたがエクスポート/データベースを2番目のデータベースが置かれているサーバーと同じサーバーに配置すると、上で概説したアプローチを使用できます。それは可能でしょうか? –

+0

はい、このアプローチを試してみてください。 – dg90

1
  1. BCP OUTテーブルの値
  2. BCP Inをしかしキーがidentityある場合は、この意志の自動のみキーを生成-Eオプション

を使用しないでください。


それとも、単にこれを実行します。

insert into DB1..tblPerson 
select Value from DB2..tblPerson 
+0

私が得た問題は、2つの同等のDBが別のプロダクションにあることです。だから彼らはデータがお互いに等しくない。今私は、あるDBからのデータが他のDBのデータを補完することを望みます。しかし私は依存関係などを持っています...私はマイグレーションツールを検索するか、私の質問のように手作業で行う必要があります。これらの例では難しいでしょう – dg90

1

を、次の操作を行うことができる必要があります:

insert into db1.NewTable (Value) select Value from db1.Table 
insert into db1.NewTable (Value) select Value from db2.Table 
関連する問題