0

2 つのテーブル @mtss テーブルがあります。

@mtss
( [MM],[YYYY],[month_Start],[month_Finish],[ProjectID],[ProjectedBillable],[ProjectedPayable],[ActualBilled],[ActualPaid],[Total_To_Bill],[Total_To_Pay])

tbl_Snapshot ([MM],[YYYY],[month_Start],[month_Finish],[ProjectID],[ProjectedBillable],[ProjectedPayable],[ActualBilled],[ActualPaid],[Total_To_Bill],[Total_To_Pay]
)

2 つのテーブルを比較して、一致するものを見つける必要があります

tbl_snapshot [MM] と [ProjectId] が一致する場合、tbl_snapshot のレコードを削除し、@mtts からレコードを挿入します。

前もって感謝します。

4

2 に答える 2

2

あなたは2008年にいるMERGEので、単一の論理操作として実行するために使用できます:

;merge into tbl_Snapshot s
using @mtss m on s.MM = m.MM and s.ProjectId = m.ProjectId
when matched then update
set
    YYYY = m.YYYY,
    month_Start = m.month_Start
    /* Other columns as well, not going to type them all out */
;

これは、データが1つのテーブルにのみ存在し、他のテーブルには存在しない場合に、対応する必要がある他のケースにも簡単に拡張できます。


もちろん、さらに考えてみると、この場合は単純なUPDATEものでも機能します。のDELETE後に an が続くINSERT(削除された行と挿入された行がキーによって関連付けられている場合) は、 と同等ですUPDATE

于 2012-09-07T07:36:33.790 に答える
0

Somethig like:

DELETE tbl_snapshot 
FROM tbl_snapshot ss
INNER JOIN @mtss m ON m.MM = ss.MM AND m.ProjectId = ss.ProjectId

(I wrote the code directly to this editor so it might have errors, but it should give you an idea how to continue)

于 2012-09-07T07:32:12.397 に答える