Seit SET IDENTITY_INSERT
ist sitzungssensitiv, es wird auf Pufferebene verwaltet, ohne irgendwo zu speichern. Das bedeutet, dass wir IDENTITY_INSERT
nicht überprüfen müssen Status, da wir dieses Schlüsselwort in der aktuellen Sitzung nie verwenden.
Tut mir leid, keine Hilfe dafür.
Gute Frage :)
Quelle:Hier
Aktualisieren Es gibt vielleicht Möglichkeiten, dies zu tun, auch auf der Seite, die ich verlinkt habe, IMO, es ist zu viel Aufwand, um nützlich zu sein.
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