Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie überprüfen Sie, ob IDENTITY_INSERT in SQL Server auf ON oder OFF gesetzt ist?

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