0

我正在尝试使用单个脚本在数据库中创建一堆条目,我遇到的问题是如何引用我创建的上一个条目的生成主键。

例如,如果我创建了一个客户,然后尝试为该客户创建一个订单,我如何获取为该客户生成的主键?

我正在使用 SQLServer。

4

3 回答 3

4

像这样:

DECLARE @customerid int;
INSERT INTO customers(name) VALUES('Spencer');
SET @customerid = @@IDENTITY;

编辑:

显然,它需要 SCOPE_IDENTITY() 才能按预期使用触发器。

DECLARE @customerid int;
INSERT INTO customers(name) VALUES('Spencer');
SET @customerid = SCOPE_IDENTITY();
于 2009-01-16T00:57:02.230 回答
4

如果在您的版本中可用,请改用 SCOPE_IDENTITY()。比@@IDENTITY 更安全。

于 2009-01-16T01:03:42.263 回答
2

如果您一次插入多行,您可以使用OUTPUT INTO SQL Server 2005 或更高版本的功能获取所有标识(例如,用于创建相关记录) 。

这可以避免你必须编写循环和游标等。

于 2009-01-16T01:40:09.633 回答