La Cláusula OUTPUT permite retornar los registros resultantes de un update, insert o delete. 

Se puede retornar la salida en una tabla o directamente. En la sentencia OUTPUT haremos referencia a los datos eliminados o insertados usando inserted y deleted.

 

Por ejemplo, para ver lo que borramos escribiremos:

 

BEGIN TRAN 

Declare @Tab_Result TABLE (IdDoc int,IdPedido int, IdArticulo varchar(50))

 

DELETE FROM Pedidos_Cli_Lineas 

                OUTPUT deleted.$identity, deleted.IdPedido, deleted.IdArticulo

INTO @Tab_Result

WHERE IdEstado=0

 

SELECT * FROM @Tab_Result

ROLLBACK TRAN

 

Con las siguientes sentencias vemos directamente lo que escribimos, sin guardarlo en una segunda tabla (como hemos hecho en el ejemplo anterior):

 

Declare @Tab_Result TABLE (IdDoc int identity(1,1),IdPedido2 int, IdArticulo2 varchar(50))

 

INSERT INTO @Tab_Result (IdPedido2, IdArticulo2)

                OUTPUT inserted.$identity, inserted.*

SELECT IdPedido,IdArticulo

FROM Pedidos_Cli_Lineas 

WHERE IdEstado=0

<< Artículo anterior                                                                                                                                      Siguiente artículo >>