2011-09-10 25 views
0

私の要件は、データベースをローカルサーバーから移行先サーバー(すべてのテーブル、ビュー、関数、行、ストアドプロシージャ)に更新するだけのプロジェクトに取り組んでいます。2つのデータベーステーブルの行を比較して挿入します

ローカルデータベーステーブルと宛先データベーステーブルを比較し、ローカルデータベースから新しく挿入された行を宛先テーブルに挿入します。

など。私はデータベースdbsourcedbDestinationを持っていて、どちらもテーブルtable1を含んでいます。今度は新しい行をdbsource.table1に挿入します。

ここで、両方のデータベーステーブルを比較し、新しいテーブルをデスティネーションテーブルに挿入します。

私を助けてください。

答えて

0

表1の表には主キー(一意の)列があると仮定して、それを実装する方法を示します。私はPKカラムの名前をID:

INSERT INTO DBDESTINATION.<SCHEMA_NAME>.TABLE1 
(SELECT T1.* FROM DBSOURCE.<SCHEMA_NAME>.TABLE1 AS T1 
    LEFT OUTER JOIN DBDESTINATION.<SCHEMA_NAME>.TABLE1 AS T2 ON T1.ID=T2.ID 
    WHERE T2.ID IS NULL) 

希望します。

+0

幹部上記のクエリが近い」不適切な構文を 『<』になっSCHEMA_NAME、どうなりますか。 " – Anil

+0

schema_nameは、あなたの表に似ているスキーマの名前です。デフォルトでは、dbo.so DBSOURCE.DBO.TABLE1です。 schema_nameの代わりにDBOを置くと(角かっこなし)、おそらく大丈夫でしょう –

1

なぜホイールを改革するのですか?すでにあなたのためにこれを行うそこに商用アプリケーションがたくさんあります:

+0

しかし、自分でできることを何とかしてお金を払うのはなぜですか? –

+0

あなた自身でそれをすることはあなたの時間とお金もかかります..... –

+0

複数のテーブルのペアを比較する場合は同意するでしょう。しかし、もう一度、私はむしろ他のサードパーティのツールを使用するよりも利用可能な機能のすべてのドロップを絞るだろう。私は自分自身で、Red GatesのSQLPromptを使用しています。これは、SQL Server 2005にはコードの書式設定と補完機能がないため、SSMSのプラグインとして優れています。私はレッドゲートが2つのテーブルを比較するときに同じように続くことは間違いない。 –

関連する問題