Alternativa para o @@IDENTITY no SQL Server 2000

Tive problemas com a instrução @@IDENTITY, para retornar a  PRIMARY KEY de um registro inserido, na execução de Stored Procedure.

Identifiquei as seguintes alternativas:

para SQL Server versões 2000 ou superior.

“Instruções SQL que estão contidos no mesmo lote, Stored Procedure ou Trigger são considerados no mesmo escopo. Então, se eu chamar um INSERT que aciona um gatilho, eu tenho dois âmbitos diferentes: âmbito de aplicação 1 está dentro do lote que chamado de INSERT e escopo dois está dentro da trigger.”

SELECT @@IDENTITY

Esta é a função favorita de todos, sem alteração de versões anteriores do SQL Server. É esta uma Função favorita de Todos, sem alteração Anteriores de versões do SQL Server. Ele retorna o valor de identidade último produzido em uma ligação, independentemente do quadro que produziu o valor, independentemente do âmbito de aplicação da declaração de que o valor produzido. Ele retorna uma ÚLTIMA IDENTITY Produzido em valor Uma Conexão, independentemente do valor o Quadro Que produziu, independentemente do Âmbito de Aplicação da DECLARAÇÃO de Produzido Que o valor.

SELECT IDENT_CURRENT ('TableName')

Esta nova função retorna o último valor de identidade produzidos em uma tabela, independentemente da ligação que criou o valor, independentemente do âmbito de aplicação da declaração de que o valor produzido. Esta nova Função retorna o ultimo valor IDENTITY Produzido em Uma tabela, independentemente da Ligação Que Criou o valor, independentemente do Âmbito de Aplicação da DECLARAÇÃO de Produzido Que o valor.

SELECT SCOPE_IDENTITY()

Esta nova função retorna o último valor de identidade produzidos em uma ligação e de uma declaração no mesmo âmbito, independentemente do quadro que produziu o valor. Esta nova Função retorna o ultimo valor IDENTITY Produzido em Conexão Uma e Uma DECLARAÇÃO No mesmo âmbito, independentemente do valor o Quadro Que produziu. Sugira uma tradução melhor.

Considerando as tabelas:

Podemos obter o IDENTITY com as seguintes instruções:

fonte: Mark em SQL Team.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *