日期:2014-05-18  浏览次数:20791 次

派生表 'U' 不可更新,因为修改会影响多个基表。请问要怎么弄?
SQL code

UPDATE U SET U.RK=1,U.SG=0,U.date_SG=null,U.createBy=dbo.GetCheckTab(createBy,0)+','+dbo.GetCheckTab(createBy,1) 
,U.Remark=isnull(U.Remark,'') + '手工:上挂到入库(admin,2011-12-9 14:34:48)。'
,U.SG_ID=null,U.SG_Name=null 
FROM 
( 
    SELECT B.SG,B.RK,B.date_SG,B.createBy,B.Remark,C.SG_ID,C.SG_Name FROM LK_ItemCodeAndScanCode as A 
    left join lK_StoreStatusReport as B on A.steelCode=B.steelCode 
    left join LK_JobNumAndScanCode as C on C.steelCode = A.steelCode 
    where B.status!=2 and A.ID in (79582)
 ) as U 



添加了这个后: U.SG_ID=null,U.SG_Name=null 
就出现了。派生表 'U' 不可更新,因为修改会影响多个基表。请问要怎么弄?

------解决方案--------------------
晕,这个你需要遵守规则啊

一个表一个表的进行更新吧。
------解决方案--------------------
怎么可以这样更新,多表的话就要分开去按条件更新,怎么能这么写,看看基础语法吧!
------解决方案--------------------
update 更新实表,不能更新派生表
------解决方案--------------------