Sinds SET IDENTITY_INSERT
is sessiegevoelig, het wordt beheerd op bufferniveau zonder ergens op te slaan. Dit betekent dat we de IDENTITY_INSERT
. niet hoeven te controleren status omdat we dit sleutelwoord nooit gebruiken in de huidige sessie.
Sorry, geen hulp hiervoor.
Goede vraag echter :)
Bron:Hier
Bijwerken Er zijn misschien manieren om dit te doen, ook te zien op de site die ik heb gelinkt, IMO, het is te veel moeite om nuttig te zijn.
if
(select max(id) from MyTable) < (select max(id) from inserted)
--Then you may be inserting a record normally
BEGIN
set @I = 1 --SQL wants something to happen in the "IF" side of an IF/ELSE
END
ELSE --You definitely have IDENTITY_INSERT on. Done as ELSE instead of the other way around so that if there is no inserted table, it will run anyway
BEGIN
.... Code that shouldn't run with IDENTITY_INSERT on
END