IDENTITY
Esta é uma dúvida comum entre desenvolvedores
Esta é uma dúvida comum entre desenvolvedores.
Em muitas situações, você deseja saber o código que acabou de inserir.
Para isso precisamos saber o IDENTITY, mas qual deles? Existem 3 opções.
SCOPE_IDENTITY() - Retorna o último ID inserido dentro daquele escopo(Procedure, Função, etc).
Recomendo sempre utilizar este.
 IDENT_CURRENT('nomedatabela') - Retorna o último ID inserido em uma determinada tabela, independente de conexão, escopo, etc.
Muito Cuidado com esta, pois você pode pegar o ID de outro insert.
@@IDENTITY - Retorna o último ID inserido na conexão atual, independente de tabela.
Evite usar este, a chance de ter problema é enorme.
Vamos aos testes.
CRIAÇÃO DO AMBIENTE:
CREATE TABLE Cliente
(
   CodCliente int identity(1,1) primary key,
   Nome varchar(50)
)
GO
CREATE TABLE Registro
(
   CodReg int identity(1,1) primary key,
   Nome varchar(50),
   Data datetime default getdate()
)
GO
INSERT INTO Registro(Nome) values('Teste1'),('Teste2')
GO
CREATE TRIGGER Â tg_Cliente ON Cliente
For Insert
AS
  INSERT INTO Registro(Nome)
  SELECT Nome FROM inserted
GO
Verifique o cenário atual:
SELECT * from Cliente
SELECT * from Registro

 --Como não tem nenhum registro na tabela Cliente, deve retornar Código 1
INSERT INTO Cliente(Nome) VALUES ('José')
SELECT Scope_Identity() as CódigoCliente
--O último registro inserido foi 1, então ele deve retornar o Código 2
INSERT INTO Cliente(Nome) VALUES ('João')
SELECT Ident_Current('Cliente') as CódigoCliente
--O último registro inserido foi 2, então ele deveria retornar o Código 3, porém ele pega o Código 5(da tabela Registro), que foi inserido pela trigger, pois está na mesma conexão.
INSERT INTO Cliente(Nome) VALUES ('Manuel')
SELECT @@IDENTITY as Código

Muito cuidado ao utilizar estes comandos, analisem bem a situação.
Related articles
SQL Update using Try Catch
Na prática com exemplo real
Comando SQL Update usando Try Catch
Na prática e no database
SELECT Format Date Time for many countries
It is a good tip to use day by day
Membership $5/mo
✓ Full articles Subscribe ✓ Write forums ✓ Access podcast ✓ Full jobs opportunities ✓ Access eBooks ✓ Access magazine ✓ Access videos |
Free
✓ Open articles ✓ Read forums ✓ Access podcast x Full jobs opportunities x Access eBooks x Access magazine x Access videos |