Поскольку вы работаете с SQL Server 2008, вы можете использовать инструкцию MERGE:
-- Target Table
DECLARE @tgt TABLE (OrdID INT, ItemID INT, Qty INT, Price MONEY);
INSERT INTO @tgt (OrdID, ItemID, Qty, Price)
SELECT 1, 100, 10, 10.00 UNION ALL
SELECT 1, 101, 10, 12.00
OrdID ItemID Qty Price
----------- ----------- ----------- ---------------------
1 100 10 10.00
1 101 10 12.00
-- Source Table
DECLARE @src TABLE (OrdID INT, ItemID INT, Qty INT, Price MONEY);
INSERT INTO @src (OrdID, ItemID, Qty, Price)
SELECT 1, 100, 12, 10.00 UNION ALL
SELECT 1, 102, 10, 12.00 UNION ALL
SELECT 1, 103, 5, 7.00
OrdID ItemID Qty Price
----------- ----------- ----------- ---------------------
1 100 12 13.00
1 102 10 12.00
1 103 5 7.00
MERGE @tgt AS t
USING @src AS s
ON t.OrdID = s.OrdID AND t.ItemID = s.ItemID
WHEN MATCHED THEN
UPDATE SET
t.Qty = s.Qty,
t.Price = s.Price;
Content of the target table after the MERGE operation:
OrdID ItemID Qty Price
----------- ----------- ----------- ---------------------
1 100 12 13.00