在创建它的同一个T-SQL语句中获取IDENTITY值?

Sak*_*o73 4 sql t-sql sql-server identity-column sql-server-2008-r2

有人问我是否有一个insert语句,它有一个ID字段是"identity"列,如果分配的值也可以插入到同一个记录中的另一个字段中,则在同一个insert语句中.

这可能吗(SQL Server 2008r2)?

谢谢.

mar*_*c_s 9

你不能真的这样做 - 因为IDENTITY实际上只用于列的实际值是固定的,并在INSERT完成后设置.

但是,您可以使用例如触发器

CREATE TRIGGER trg_YourTableInsertID ON dbo.YourTable 
AFTER INSERT
AS 
UPDATE dbo.YourTable
SET dbo.YourTable.OtherID = i.ID
FROM dbo.YourTable t2
INNER JOIN INSERTED i ON i.ID = t2.ID
Run Code Online (Sandbox Code Playgroud)

这将在插入任何行后立即触发,并将OtherID列设置IDENTITY为插入行的列值.但严格来说,这不是同一声明中 - 它只是你的原始声明之后.