Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como você verifica se IDENTITY_INSERT está definido como ON ou OFF no SQL Server?


Desde SET IDENTITY_INSERT é sensível à sessão, é gerenciado no nível do buffer sem armazenar em algum lugar. Isso significa que não precisamos verificar o IDENTITY_INSERT status, pois nunca usamos essa palavra-chave na sessão atual.

Desculpe, não há ajuda para isso.

Mas ótima pergunta :)

Fonte:Aqui

Atualizar Existem maneiras talvez de fazer isso, também visto no site que eu vinculei, IMO, é muito esforço 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