При работе с SQL Server часто встречаются сценарии, когда вам необходимо вставить данные в таблицу, имеющую столбец идентификаторов, и получить сгенерированное значение идентификатора. В этой статье мы рассмотрим несколько методов выполнения таких операций, а также приведем примеры кода.
Метод 1: использование функции SCOPE_IDENTITY()
Функция SCOPE_IDENTITY() возвращает последнее значение идентификатора, сгенерированное в текущей области.
INSERT INTO TableName (Column1, Column2)
VALUES ('Value1', 'Value2');
SELECT SCOPE_IDENTITY() AS NewIdentity;
Метод 2: использование предложения OUTPUT
Предложение OUTPUT позволяет получить вставленные значения идентификаторов в виде набора результатов.
INSERT INTO TableName (Column1, Column2)
OUTPUT inserted.IdentityColumn
VALUES ('Value1', 'Value2');
Метод 3: использование системной функции @@IDENTITY
Функция @@IDENTITY возвращает последнее значение идентификатора, сгенерированное в любой таблице в текущем сеансе, независимо от области действия.
INSERT INTO TableName (Column1, Column2)
VALUES ('Value1', 'Value2');
SELECT @@IDENTITY AS NewIdentity;
Метод 4. Использование функции IDENT_CURRENT()
Функция IDENT_CURRENT() возвращает последнее значение идентификатора, сгенерированное для определенной таблицы.
INSERT INTO TableName (Column1, Column2)
VALUES ('Value1', 'Value2');
SELECT IDENT_CURRENT('TableName') AS NewIdentity;
Метод 5: использование предложения OUTPUT с табличной переменной
Этот метод использует табличную переменную для хранения вставленных значений идентификаторов и позволяет обрабатывать несколько строк.
DECLARE @InsertedIds TABLE (Id INT);
INSERT INTO TableName (Column1, Column2)
OUTPUT inserted.IdentityColumn INTO @InsertedIds
VALUES ('Value1', 'Value2');
SELECT Id FROM @InsertedIds;
В этой статье мы рассмотрели несколько методов вставки данных в таблицу SQL Server и получения сгенерированных значений идентификаторов. Предложение SCOPE_IDENTITY(), OUTPUT, @@IDENTITY, IDENT_CURRENT() и предложение OUTPUT с табличной переменной — это мощные методы, которые можно использовать в зависимости от ваших конкретных требований. Используя эти методы, вы можете эффективно управлять столбцами идентификаторов в SQL Server и с легкостью получать вставленные значения идентификаторов.