1. 首先把這種“ update...set...from...join... where...”查詢起個名字叫: 【連接查詢更新】。
2. 有兩種寫法:
一種是(好理解的方式),更新查詢表中的數據,即更新時取查詢表的別名。舉例如下:
BEGIN TRAN
UPDATE a SET a.PlayerName = a.PlayerName + b.GuestName
FROM dbo.T_Order a INNER JOIN dbo.T_OrderDetail b ON a.OrderNo = b.OrderNo
WHERE a.OrderNo = '16062902957'
GO
--ROLLBACK TRAN
COMMIT TRAN
第二種寫法跟第一種類似,但更接近與傳統的更新語句寫法。 舉例如下:
BEGIN TRAN
UPDATE T_Order SET PlayerName = o.PlayerName + od.GuestName
FROM T_Order o INNER JOIN dbo.T_OrderDetail od ON o.OrderNO = od.OrderNo
WHERE o.OrderNo = '16062902957'
--ROLLBACK TRAN
COMMIT TRAN
3. 說明:上面兩種寫法中紅色字體的表必須是有關聯的【系統默認是關聯的】。