1

簡単な MERGE ステートメントが与えられます。レコードをターゲット テーブルに挿入/更新する場所。質問: 挿入の場合は 0、更新の場合は 1 のフラグを付けて、これらの値を別のテーブルに挿入することもできますか? 例えば。一致しない場合はターゲットと別のテーブルに挿入し、一致した場合はターゲットを更新して別のテーブルに挿入します。

MERGE dbo.FactBuyingHabits AS Target
USING (SELECT CustomerID, ProductID, PurchaseDate FROM dbo.Purchases) AS Source
  ON (Target.ProductID = Source.ProductID AND Target.CustomerID = Source.CustomerID)
WHEN MATCHED THEN
  UPDATE SET Target.LastPurchaseDate = Source.PurchaseDate
  --and insert into test_tbl values (1, Source.ProductID, Source.CustomerID) --?
WHEN NOT MATCHED BY TARGET THEN
  INSERT (CustomerID, ProductID, LastPurchaseDate)
  VALUES (Source.CustomerID, Source.ProductID, Source.PurchaseDate)
  --and insert into test_tbl values (0, Source.ProductID, Source.CustomerID) --?
4

1 に答える 1