Как написать UPDATE из XML с псевдонимом таблицы в SQL Server 2008 уже есть оператор «От» - PullRequest
0 голосов
/ 06 февраля 2019

Здесь мне нужно добавить псевдоним в TableName AS 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 

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте,

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 
...