代码之家  ›  专栏  ›  技术社区  ›  Praveenks

无法在update语句中绑定多页标识符

  •  0
  • Praveenks  · 技术社区  · 12 年前

    我正试图在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.
    
    3 回复  |  直到 12 年前
        1
  •  0
  •   Damien_The_Unbeliever    12 年前

    不允许将多部分标识符用于 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 而不是 ,

        2
  •  0
  •   Maryam Arshi    12 年前

    你给你的桌子取了别名 t_grgr_xwalk xwalk ,所以对于第一个表达式 Update Table 你应该使用 x行走

    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'
    
        3
  •  0
  •   shola    12 年前

    您可以尝试以下操作: SELECT@lUpd1='更新ts1cust.dbo.t_grgr_xwalk xwalk 设置xwalk.WEB=info.WEB,xwalk.AVIVIA=info.AVIVIA,xwalk.MSP=info.MSP,xwalk.QO=info.QO 自ts1cust.dbo.t_plan_mspqo_info信息 其中info.PLANID=xwalk.ID_471'