Как использовать оператор вывода в SQL для вывода результатов вставки, обновления и удаления в новую временную таблицу?

В настоящее время я пытаюсь выполнить обновлениев 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) во временную таблицу?

5
задан BoltClock 31 May 2012 в 18:42
поделиться