【发布时间】:2011-01-28 10:18:59
【问题描述】:
我正在使用 SQL Server 2005(用于测试)和 2007(用于生产)。
我必须使用另一个表中的“最后一条记录 ID”列,在现有列中为我的表中的所有记录添加唯一的记录 ID。所以,我要对我的表做某种UPDATE,但我必须从另一个表中获取“最后一个记录 ID”,增加它,更新那个表,然后更新我的记录。
谁能给我一个如何做到这一点的例子?其他用户可能也在增加计数器。
【问题讨论】:
我正在使用 SQL Server 2005(用于测试)和 2007(用于生产)。
我必须使用另一个表中的“最后一条记录 ID”列,在现有列中为我的表中的所有记录添加唯一的记录 ID。所以,我要对我的表做某种UPDATE,但我必须从另一个表中获取“最后一个记录 ID”,增加它,更新那个表,然后更新我的记录。
谁能给我一个如何做到这一点的例子?其他用户可能也在增加计数器。
【问题讨论】:
如果您要插入一个表,然后更新(ing)下一个表,您可以使用 @@IDENTITY 为您提供第一个表的自动增量 ID。
例如
INSERT INTO table1 (description) VALUES ('blah');
UPDATE table2 SET (tabel1ID = @@IDENTITY) WHERE condition
@@IDENTITY 将为您提供最后插入的行的 ID。
【讨论】: