@@ IDENTITY, SCOPE_IDENTITY (), OUTPUT y otros métodos para recuperar la última identidad

He visto varios métodos utilizados al recuperar el valor de un campo de identidad de clave principal después de la inserción.

declare @t table (
    id int identity primary key,
    somecol datetime default getdate()
)
insert into @t
default values

select SCOPE_IDENTITY() --returns 1
select @@IDENTITY --returns 1

Devolver una tabla de identidades después del inserto:

Create Table #Testing (  
    id int identity,  
    somedate datetime default getdate()  
)  
insert into #Testing  
output inserted.*  
default values   

¿Qué método es apropiado o mejor? ¿El método OUTPUT es seguro para el alcance?

El segundo fragmento de código fue tomado deSQL en estado salvaje

Respuestas a la pregunta(8)

Su respuesta a la pregunta