Вывод во временную таблицу в SQL Server 2005 - PullRequest
4 голосов
/ 09 июня 2011

Я пытаюсь использовать предложение OUTPUT внутри хранимой процедуры для вывода во временную таблицу значений столбца идентификаторов после INSERT.

CREATE TABLE #Test
(
    ID INT
)

INSERT INTO [TableB] OUTPUT INSERTED.ID #Test SELECT * FROM [TableA]

Однако, когда я выполняю эту процедуру, SQL Server показывает мне результаты в таблице (правильно) с именем Test, но если я пишу SELECT * FROM #Test в качестве следующего оператора в хранимой процедуре, он ничего не показывает. Как я могу эффективно достичь этого?

1 Ответ

13 голосов
/ 09 июня 2011

Я думаю, что вам не хватает INTO - попробуйте это:

CREATE TABLE #Test(ID INT)

INSERT INTO [TableB] 
    OUTPUT INSERTED.ID INTO #Test 
    SELECT * FROM [TableA]

После списка столбцов в OUTPUT добавьте INTO перед именем таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...