IDENTITY
CREATE TABLE dbo.logging_table(log_id INT IDENTITY(1,1) PRIMARY KEY,
log_message VARCHAR(255))
CREATE TABLE dbo.person(person_id INT IDENTITY(1,1) PRIMARY KEY,
person_name VARCHAR(100) NOT NULL)
GO;
CREATE TRIGGER dbo.InsertToADifferentTable ON dbo.person
AFTER INSERT
AS
INSERT INTO dbo.logging_table(log_message)
VALUES('Someone added something to the person table')
GO;
INSERT INTO dbo.person(person_name)
VALUES('John Doe')
SELECT @@IDENTITY;
无论范围如何,这都将在同一连接上返回最近添加的标识。在这种情况下,无论 logging_table 上标识列的当前值是什么,假设 SQL Server 实例上没有发生其他活动,并且没有其他触发器从此插入触发。