如何在SQLServer2008中使用表别名从XML写入更新已经有了一个';从';陈述

如何在SQLServer2008中使用表别名从XML写入更新已经有了一个';从';陈述,sql,sql-server,xml,sql-update,sqlxml,Sql,Sql Server,Xml,Sql Update,Sqlxml,在这里,我需要将别名添加到“TableName”中作为T。更新已经有一个“From”语句,用于从XML获取值 UPDATE TableName SET TableName.PrintedBy = ISNULL(TableName.PrintedBy,der.PrintedBy), TableName.PrintedDate = ISNULL(TableName.PrintedDate,GETDATE()), @RetVal=der.NoteId FROM ( SELE

在这里,我需要将别名添加到“TableName”中作为T。更新已经有一个“From”语句,用于从XML获取值

UPDATE TableName SET 
  TableName.PrintedBy = ISNULL(TableName.PrintedBy,der.PrintedBy), 
  TableName.PrintedDate = ISNULL(TableName.PrintedDate,GETDATE()),
  @RetVal=der.NoteId 
FROM (     
SELECT PrintedBy,NoteId
      FROM OPENXML(@hDoc1,'TableName',1)
      WITH   (  PrintedBy INT 'PrintedBy', 
                NoteId INT 'NoteId'
             )
    ) as der
WHERE TableName.NoteId = der.NoteId 
试试这个

UPDATE T SET 
T.PrintedBy = ISNULL(T.PrintedBy,der.PrintedBy), 
T.PrintedDate = ISNULL(T.PrintedDate,GETDATE()),
@RetVal=der.NoteId 
FROM (     
    SELECT PrintedBy,NoteId
    FROM OPENXML(@hDoc1,'TableName',1)
    WITH   (  PrintedBy INT 'PrintedBy', 
              NoteId INT 'NoteId'
            )
     ) as der, TableName T
WHERE T.NoteId = der.NoteId 

可能是@DaleBurrell的复制品不是复制品。拉桑贾纳给出了正确的答案。他的解决方案针对您的问题。。。“但实际问题是一样的,”戴尔·伯雷尔说,但解决办法不同。