sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo comprueba si IDENTITY_INSERT está activado o desactivado en SQL Server?

Desde SET IDENTITY_INSERT es una sesión sensible, se administra en el nivel de búfer sin almacenar en ningún lugar. Esto significa que no necesitamos verificar el IDENTITY_INSERT estado ya que nunca usamos esta palabra clave en la sesión actual.

Lo sentimos, no hay ayuda para esto.

Sin embargo, gran pregunta :)

Fuente:Aquí

Actualizar Tal vez hay formas de hacer esto, también visto en el sitio que vinculé, en mi opinión, es demasiado esfuerzo para ser útil.

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