0

これは私の質問です

SELECT PageVisit_ID,TargetSite_ID FROM [A].Datawarehouse.mi.ctb_PageEvent WITH (NOLOCK)
 EXCEPT 
 SELECT PageVisit_ID ,TargetSite_ID FROM [B].Datawarehouse.mi.ctb_PageEvent WITH (NOLOCK)

2つのサーバーからのこれらの2つのテーブル。 上記のクエリ結果とのみ一致するレコードを更新する必要がありtargetsite_idます。[A].Datawarehouse.mi.ctb_PageEvent[B].Datawarehouse.mi.ctb_PageEvent

4

1 に答える 1

1

これを試して

DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));

MERGE INTO [A].Datawarehouse.mi.ctb_PageEvent AS Target
USING ( SELECT PageVisit_ID ,TargetSite_ID FROM [B].Datawarehouse.mi.ctb_PageEvent WITH (NOLOCK)) AS SOURCE
ON Target.TargetSite_ID = Source.TargetSite_ID 
WHEN MATCHED THEN
    //UPDATE OR do nothing
WHEN NOT MATCHED BY TARGET THEN
    //INSERT 
OUTPUT $action INTO @SummaryOfChanges;

SQL SERVER –マージ操作–挿入、更新、単一実行での削除を参照してください。私のソリューションは、これを行う方法についての基本的な考え方を示しています。最初は100%動作しない可能性があります。ロジックを理解したら、微調整するだけです

于 2012-09-17T15:46:06.067 に答える