码迷,mamicode.com
首页 > 其他好文 > 详细

关于update_set_from_where

时间:2017-08-14 14:24:04      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:执行   关联   tail   ase   inner   nbsp   例子   比较   扫描   

下面这样的一个例子:

1 UPDATE psto SET productMaterialKind=sop.productMaterialKind
2             FROM #tempSale t 
3             JOIN dbo.produceSaleTaskOrderDetail AS pstod ON t.saleOrderID=pstod.saleOrderID
4             JOIN dbo.produceSaleTaskOrder AS psto ON pstod.taskorderID = psto.taskOrderID
5             JOIN dbo.saleOrder AS so ON t.saleOrderID=so.saleOrderID
6             JOIN dbo.saleOrderDzProduct AS sop ON pstod.saleOrderID=sop.saleOrderID

update set from 语句格式

当where和set都需要关联一个表进行查询时,整个 update执行时,就需要对被关联的表进行两次扫描,显然效率比较低。
对于这种情况,Sybase和SQL SERVER的解决办法是使用UPDATE...SET...FROM...WHERE...的语法,实际上就是从源表获取更新数据。

在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。

Update T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo   B ON B.L_ID=A.ProductID

用来同步两个表的数据!

 

关于update_set_from_where

标签:执行   关联   tail   ase   inner   nbsp   例子   比较   扫描   

原文地址:http://www.cnblogs.com/cuijl/p/7357355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!