Na maior parte do nosso cotidiano de aplicação, precisamos obter as últimas informações de linha inseridas por meio da consulta SQL. E para isso, temos várias opções como:
@@IDENTITY
SCOPE_IDENTITY
IDENT_CURRENT
Todas as três funções retornam valores de IDENTITY gerados pela última vez. No entanto, o escopo e a sessão em que o último é definido em cada uma dessas funções são diferentes.
@@IDENTITY
Ele retorna o último valor de identidade gerado para qualquer tabela na sessão atual, em todos os escopos. Deixe-me explicar ... imaginamos que nós criamos um
insert
trigger na tabela que insere uma linha em outra tabela com gerar uma coluna de identidade e, em seguida, @@IDENTITY
retorna esse registro de identidade que é criado por trigger.SCOPE_IDENTITY
Ele retorna o último valor de identidade gerado para qualquer tabela na sessão atual e no escopo atual.
Deixe-me explicar isso ... imaginamos que criamos um trigger de inserção na tabela que insere uma linha em outra tabela com gerar uma coluna de identidade, então o
SCOPE_IDENTITY
resultado não é afetado, mas se um trigger ou uma função definida pelo usuário for afetada na mesma tabela que produziu o valor retorna esse registro de identidade e, em seguida, SCOPE_IDENTITY
retorna esse registro de identidade que é criado por acionador ou uma função definida pelo usuário.IDENT_CURRENT
Retorna o último valor de identidade gerado para uma tabela específica em qualquer sessão e qualquer escopo. Em outras palavras, podemos dizer que ele não é afetado pelo escopo e pela sessão, ele só depende de uma tabela específica e retorna esse valor de identidade relacionado à tabela que é gerado em qualquer sessão ou escopo.
Este artigo, juntamente com qualquer código-fonte e arquivos associados, está licenciado sob a Licença Aberta do Projeto de Código (CPOL).
Nenhum comentário:
Postar um comentário