Q:

Show user before and after results when doing an update in T-SQL

I have an T-SQL Script and in this script I perform several typical updates:
UPDATE TABLE1 SET column01 = value01, column02 = value02, ..., columnN = valueN;

UPDATE TABLE2 SET column01 = value01, column02 = value02, ..., columnN = valueN;

UPDATE TABLE3 SET column01 = value01, column02 = value02, ..., columnN = valueN;

So I would like for each table update above, to show user the values before and after update it, that is, show user a table result consisting on two rows, first row corresponding the values before doing the update and second one corresponding the values after updating. 
So how to do this? 

A:

You can use the inserted and deleted tables to get the before and after states, like so:
UPDATE TABLE1 SET column01 = value01, column02 = value02, ..., columnN = valueN;
OUTPUT
deleted.*,  inserted.*; 

You can write the result from the OUTPUT clause into a temporary table or table variable, and then select the columns from source and target table as 2 rows using union all, as shown in the demo. 
Demo

