0

それらのレコードがテーブルに存在しない限り、いくつかのレコードを挿入するクエリがありますが、そのレコードのフィールドが他のテーブルにある場合はそのレコードのフィールドを更新し、それ以外の場合はそのまま挿入します。今やっている。助けやアドバイスをいただければ幸いです。それはできますか?

    -- Insert into my my Toys table if record not already there (but would like to also update one of its fields)
    INSERT INTO Toys (Date, ToyId)
    SELECT inv.Date, inv.Id
    FROM Inventory inv 
    JOIN InventoryStats invSt ON inv.Id = invSt.InventoryId
WHERE (invSt.IsFixed = 1 AND invSt.IsSent = 0 AND invSt.Date >= '01/01/2012 12:00 PM') AND (inv.Id NOT IN (SELECT ToyId FROM Toys))

基本的に、inv.Id が既に Toys テーブルにある場合、再度挿入したくありませんが、このプロセス中にフラグの 1 つを更新したいと思います。

UPDATE Toys SET NewShipDate = inv.Date WHERE ToyId = Inv.Id
4

1 に答える 1

2

MERGEステートメントを探しています-レコードが存在しない場合はINSERT、存在する場合はUPDATEします。

于 2012-11-20T03:20:26.570 に答える