Я пытаюсь получить таблицу OUTPUT из команды INSERT для SQL Базы данных сервера (v14).
DECLARE @i TABLE (TICKET_ID int, CREATED_DATE datetime);
INSERT INTO dbo.TICKET (SITE_ID, TICKET_TITLE, USER_ID)
OUTPUT INSERTED.TICKET_ID, INSERTED.CREATED_DATE INTO @i
VALUES (@s, @t, @q);
SELECT * FROM @i;
У меня есть 3 параметра, которые заполняются для сайта, название заявки и пользователь @s, @t и @u соответственно.
Я вызываю команду, используя объект SqlClient.SqlDataReader с функцией ExecuteReader на платформе 4.5.
Команда успешно вставляет запись в таблица базы данных, но не возвращает таблицу @i с идентификатором билета (автоматическим увеличением) и датой создания (по умолчанию = GETDATE), которую я должен представить пользователю после сохранения в базе данных.
Я поиграл с удалением @i TABLE в команде, но получаю ошибку. NET:
В имени целевой таблицы оператора DML не может быть включено срабатывает, если инструкция содержит предложение OUTPUT без предложения INTO
Я нашел пару ссылок, которые предоставляют некоторые способы их устранения, но это не исправило моя проблема
https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms971497 (v = msdn.10)? redirectedfrom = MSDN
Невозможно использовать UPDATE с предложением OUTPUT, когда триггер находится на таблице
Можно ли оказать какую-либо помощь в достижении моих целей?