Sedan SET IDENTITY_INSERT
är en sessionskänslig, den hanteras i buffertnivå utan att lagras någonstans. Det betyder att vi inte behöver kontrollera IDENTITY_INSERT
status eftersom vi aldrig använder detta nyckelord i nuvarande session.
Tyvärr, ingen hjälp för detta.
Bra fråga dock :)
Källa:Här
Uppdatera Det finns kanske sätt att göra detta, även ses på webbplatsen jag länkade till, IMO, det är för mycket ansträngning för att vara användbart.
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