В настоящее время я пытаюсь выполнить обновление
в SQL Server (но это может быть любой оператор DML, который поддерживает предложениеoutput
), и я хотел бы поместить вывод в локальную временную таблицу, например так:
update
dbo.MyTable
set
MyField = 30
output
inserted.MyKeyField
into
#myTempTable
from
dbo.MyTable as t
where
f.MyFilteredField = 8
Я знаю, что синтаксис правильный, в соответствии с документацией для предложения output
(выделение мое ):
output_table
Указывает таблицу, в которую возвращаемые строки вставляются вместо возвращается вызывающему абоненту. output_table может быть временной таблицей.
Тем не менее, я ожидаю, что он будет работать точно так же, как и в предложенииinto
в операторе select
в том смысле, что он просто создаст таблицу.
Однако я получаю следующую ошибку:
Недопустимое имя объекта '#myTempTable'.
Как получить результаты предложения output
( insert
или Deleted
) во временную таблицу?