Я создаю общий параметризованный запрос (INSERT или UPDATE), и я использую параметры для вставленных столбцов (в запросе INSERT) и параметры для обновленных столбцов и столбцов where where (в запросе UPDATE).Возможно ли иметь несколько ключевых слов OUTPUT в SQL-параметризованном запросе?
В любом случае, я также разрешаю указать имя столбца, которое возвращается моим методом, и для этого я использую OUTPUT INSERTED.ColumnName
. Этот столбец может быть основным ключом таблицы, но это может быть и другое.
Теперь, после выполнения INSERT или UPDATE, я хочу получить ключ строки, которая была только что вставлена или обновлена. Как я могу это сделать? Могу ли я сделать что-то вроде OUTPUT INSERTED.ColumnName, SCOPE_IDENTITY()
?
Примечание: Это НЕ хранимая процедура, если это имеет значение.
вы можете показать нам некоторый код ?? aaaaaand btw, вы видели структуру сущности? – Misters
'SCOPE_IDENTITY()' возвращает одно значение, представляющее последнее значение идентификации, вставленное в текущую область. Я не уверен, что это имеет смысл в предложении «OUTPUT», которое может обрабатывать несколько строк и где базовая таблица может даже не иметь столбец IDENTITY. – HABO
У вас не может быть несколько ключевых слов 'OUTPUT', но вы можете вывести несколько столбцов **, например' OUTPUT Inserted.ColumnName, Inserted.ID' и т. Д. –