📜  如何在 sql server 中获取插入的 id - SQL (1)

📅  最后修改于: 2023-12-03 15:38:26.746000             🧑  作者: Mango

如何在 SQL Server 中获取插入的 id - SQL

在 SQL Server 中,要获取插入数据的 id,有几种方法可供选择。

1. 使用 SCOPE_IDENTITY()

SCOPE_IDENTITY() 函数返回最后插入的标识列值。在使用 INSERT INTO 语句插入数据时,可以把插入的数据的主键作为标识列,从而使用 SCOPE_IDENTITY() 获取最后插入的主键值。示例代码如下:

INSERT INTO table_name (column1, column2)
VALUES ('value1', 'value2');

SELECT SCOPE_IDENTITY() AS last_inserted_id;
2. 使用 OUTPUT

OUTPUT 子句可以返回插入或更新后的行或值。使用 OUTPUT 子句可以轻松地获取插入的 id,而无需依赖标识列。示例代码如下:

DECLARE @output TABLE (id INT);

INSERT INTO table_name (column1, column2)
OUTPUT INSERTED.id INTO @output
VALUES ('value1', 'value2');

SELECT id FROM @output;
3. 使用 @@IDENTITY

@@IDENTITY 是一个全局变量,它会在任何 INSERT 语句中返回最后生成的标识值。但是,它还会返回触发器中生成的标识值,这可能不是您想要的结果。因此,建议使用 SCOPE_IDENTITY() 或 OUTPUT 子句来获取插入的 id。

INSERT INTO table_name (column1, column2)
VALUES ('value1', 'value2');

SELECT @@IDENTITY AS last_inserted_id;

注意:在进行插入操作前,应该先检查表中是否已经存在相同的数据,以确保插入的数据唯一性。