@@IDENTITY
returnerar den senaste identiteten som genererades i den aktuella sessionen. I de flesta fall vill du förmodligen använda SCOPE_IDENTITY
istället, vilket returnerar den senaste identiteten som genererats i det aktuella omfånget.
Till exempel, om du infogar en rad i tabell1 , men den insatsen aktiverar en utlösare som infogar en rad i tabell2 , sedan @@IDENTITY
kommer att returnera identiteten från tabell2 medan SCOPE_IDENTITY
kommer att returnera identiteten från tabell1 .
INSERT INTO my_table (my_column) VALUES ('test')
-- return the identity of the row you just inserted into my_table
-- regardless of any other inserts made by triggers etc
SELECT SCOPE_IDENTITY() AS ins_id