我正在尝试在sql server 2008r2上执行此查询 -
SELECT @lUpd1 = 'UPDATE ts1cust.dbo.t_grgr_xwalk
SET xwalk.WEB = info.WEB,xwalk.AVIVIA = info.AVIVIA,xwalk.MSP = info.MSP,xwalk.QO = info.QO
FROM ts1cust.dbo.t_plan_mspqo_info info, ts1cust.dbo.t_grgr_xwalk xwalk
WHERE info.PLANID = xwalk.ID_471'
但得到以下提到的错误 -
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "xwalk.WEB" could not be bound.
答案 0 :(得分:0)
您将表格t_grgr_xwalk
设为xwalk
,因此对于第一个表达式Update Table
,您也应该使用xwalk
。
SELECT @lUpd1 = 'UPDATE xwalk
SET WEB = info.WEB,
AVIVIA = info.AVIVIA,
MSP = info.MSP,
QO = info.QO
FROM ts1cust.dbo.t_plan_mspqo_info info, ts1cust.dbo.t_grgr_xwalk xwalk
WHERE info.PLANID = xwalk.ID_471'
答案 1 :(得分:0)
你可以尝试下面: SELECT @ lUpd1 ='UPDATE ts1cust.dbo.t_grgr_xwalk xwalk SET xwalk.WEB = info.WEB,xwalk.AVIVIA = info.AVIVIA,xwalk.MSP = info.MSP,xwalk.QO = info.QO 来自ts1cust.dbo.t_plan_mspqo_info信息 WHERE info.PLANID = xwalk.ID_471'
答案 2 :(得分:0)
您不允许在SET
子句中为列的分配方使用多部分标识符。
SELECT @lUpd1 = 'UPDATE xwalk
SET WEB = info.WEB, --<-- no xwalk. here
AVIVIA = info.AVIVIA,
MSP = info.MSP,
QO = info.QO
FROM ts1cust.dbo.t_plan_mspqo_info info
INNER JOIN
ts1cust.dbo.t_grgr_xwalk xwalk
ON info.PLANID = xwalk.ID_471'
我还冒昧地用UPDATE
顶部使用的别名替换表格引用,并转而使用ANSI JOIN
而不是,