update set from 【连接查询更新】

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. 说明:上面两种写法中红色字体的表必须是有关联的【系统默认是关联的】。

 

posted @ 2016-06-29 17:09  Mark.Yang  阅读(3359)  评论(0编辑  收藏  举报