Depuis SET IDENTITY_INSERT
est une session sensible, elle est gérée au niveau de la mémoire tampon sans être stockée quelque part. Cela signifie que nous n'avons pas besoin de vérifier le IDENTITY_INSERT
statut car nous n'utilisons jamais ce mot clé dans la session en cours.
Désolé, aucune aide pour cela.
Bonne question cependant :)
Source :Ici
Mettre à jour Il y a peut-être des moyens de le faire, également vu dans le site que j'ai lié, IMO, c'est trop d'efforts pour être utile.
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