Siden SET IDENTITY_INSERT
er en sessionsfølsom, den administreres i bufferniveau uden at lagre et sted. Det betyder, at vi ikke behøver at kontrollere IDENTITY_INSERT
status, da vi aldrig bruger dette nøgleord i den aktuelle session.
Beklager, ingen hjælp til dette.
Men godt spørgsmål :)
Kilde:Her
Opdater Der er måske måder at gøre dette på, også set på det websted, jeg linkede til, IMO, det er for meget til at være nyttigt.
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