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