OUTPUT Clause

Return information from, or expressions based on, each row affected by an INSERT, UPDATE, or DELETE statement.

Syntax
  
  {
    [OUTPUT dml_select_list INTO { @table_variable | output_table } [ ( column_list ) ] ]
    [OUTPUT dml_select_list ]
  }

  dml_select_list:
           {column_name | scalar_expression} [ [AS] column_alias_identifier ]
            [ ,...n ]

  column_name:
           {DELETED | INSERTED | from_table_name} . { * | column_name}

Key:
   @table_variable  a table variable that the returned rows are inserted into instead of being returned to the caller. 
   output_table      A table that the returned rows are inserted into instead of being returned to the caller. 
   column_list       An optional list of column names on the target table of the INTO clause.
   scalar_expression An expression that evaluates to a single value.
   DELETED           A column prefix that specifies the value deleted by the update/delete.
   INSERTED          A column prefix that specifies the value added by the insert/update.

If multiple users may be performing a destructive read from one table use the READPAST table hint to prevent locking issues.

Example

DELETE dbo.MyTable WITH (READPAST)
OUTPUT deleted.*
WHERE DbID = 100;
GO

"If you can suffer without a hint of self-pity, without a hint of self-preoccupation, then this develops an almost limitless capacity for compassion for everyone everywhere" ~ John Griffin

Related commands:

INSERT
UPDATE
DELETE

SET TRANSACTION ISOLATION LEVEL


© Copyright SS64.com 1999-2014
Some rights reserved