Я использую следующий оператор SQL Server, чтобы вставлять записи и возвращать уникальное значение идентификатора автоинкремента всего за один снимок. Интересно, есть ли более простой/быстрый/лучший способ сделать это?Есть ли лучший способ получить уникальный идентификатор на INSERT?
SET NOCOUNT ON;
DECLARE @res table (ID bigint);
INSERT INTO [Titles] ([Name],[Timestamp],[Title])
OUTPUT INSERTED.ID INTO @res
VALUES ('Name','23 aug 2010','this is a title');
SELECT [ID] FROM @res;
UPD: Решение, которое мне подходит лучше всего следующее:
INSERT INTO [TestCase] ([Name],[Tags],[Timestamp],[Title])
OUTPUT INSERTED.*
VALUES ('Hello',0x22324423,'23 aug 2010','this is a title');
Очень генерации кода дружелюбным. Вы можете легко сгенерировать эти инструкции для любой структуры данных путем отражения. Также отлично работает в качестве замены для Linq2SQL Dataset.InsertOnSubmit()
.
дубликат http://stackoverflow.com/questions/481395/t-sql-identity-scope-identity-output-and-other-methods-of-retrieving-last – devio