📅  最后修改于: 2023-12-03 15:38:26.746000             🧑  作者: Mango
在 SQL Server 中,要获取插入数据的 id,有几种方法可供选择。
SCOPE_IDENTITY() 函数返回最后插入的标识列值。在使用 INSERT INTO 语句插入数据时,可以把插入的数据的主键作为标识列,从而使用 SCOPE_IDENTITY() 获取最后插入的主键值。示例代码如下:
INSERT INTO table_name (column1, column2)
VALUES ('value1', 'value2');
SELECT SCOPE_IDENTITY() AS last_inserted_id;
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;
@@IDENTITY 是一个全局变量,它会在任何 INSERT 语句中返回最后生成的标识值。但是,它还会返回触发器中生成的标识值,这可能不是您想要的结果。因此,建议使用 SCOPE_IDENTITY() 或 OUTPUT 子句来获取插入的 id。
INSERT INTO table_name (column1, column2)
VALUES ('value1', 'value2');
SELECT @@IDENTITY AS last_inserted_id;
注意:在进行插入操作前,应该先检查表中是否已经存在相同的数据,以确保插入的数据唯一性。