Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment vérifiez-vous si IDENTITY_INSERT est défini sur ON ou OFF dans SQL Server ?

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