Как получить автоинкрементное значение после вставки 1 записи в одном запросе (сервер SQL) - PullRequest
2 голосов
/ 22 декабря 2011

В моей таблице два поля:

Один из них - значение автоинкремента Первичного ключа, а второй - текстовое значение. скажем так: xyzId & xyz

Так что я могу легко вставить вот так

insert into abcTable(xyz) Values('34')

После выполнения вышеуказанного запроса он должен вставить эту информацию

xyzId=1 & xyz=34

и для извлечения я могу получить вот так

select xyzId from abcTable

Но для этого мне нужно записать две операции. Не могу найти в одном / под запросе?

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Если вы используете SQL Server 2005 или более позднюю версию, вы можете использовать предложение output для возврата автоматически созданного идентификатора.

Попробуйте это:

insert into abcTable(xyz)
output inserted.xyzId
values('34') 
0 голосов
/ 22 декабря 2011

Я думаю, что вы не можете сделать вставку и выборку в одном запросе.Вы можете использовать процедуры Store для выполнения двух инструкций в качестве атомарной операции или вы можете построить запрос в коде с помощью 2 инструкций, используя ';'(точка с запятой) в качестве разделителя между инструкциями.

В любом случае, для выбора значений идентификаторов в SQL Server необходимо проверить @@IDENTITY, SCOPE_IDENTITY и IDENT_CURRENT.Это быстрее и чище, чем выбор в таблице.

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