(This is part of the Study Guide series,
70-457)
Microsoft’s
Measured Skill description: This objective may include but is not limited
to: given a set of code with defaults, constraints, and triggers, determine the
output of a set of DDL; know which SQL statements are best to solve common
requirements; use output statement
What
I see:
·
OUTPUT statement
OUTPUT Statement
The OUTPUT clause can be
used to pipe affected data from a corresponding DML statement (INSERT,
UPDATE,
DELETE)
or MERGE. Through the use of this clause, the data can
be saved to a table (user table, table var, temp table, etc.) or output to the
host. The below example shows two of the
many ways you can utilize the OUTPUT clause:
use MeasureMySkills;
go
if exists
(
select *
from sys.tables
where name = 'TestDataTable'
)
drop table TestDataTable;
go
create table TestDataTable
(
id int identity(1, 1) not null,
SomeString nvarchar(128) not null,
AnotherInt int not null
);
go
-- show the output of the inserted data
to the client
insert into TestDataTable(SomeString, AnotherInt)
output inserted.id, inserted.SomeString, inserted.AnotherInt
values
('hello', 34),
('goodbye', 49),
('hola', 60),
('adios', 78);
-- create temp table to hold deleted
data
create table #DeletedData
(
id int not null,
SomeString nvarchar(128) not null,
AnotherInt int not null
);
go
-- output the deleted data to the temp
table
delete from TestDataTable
output deleted.*
into #DeletedData
where AnotherInt in (34, 49);
select *
from #DeletedData;
References
If there are any comments, questions, issues, or suggestions please feel
free to leave a comment below or email me at sqlsalt@gmail.com.
No comments:
Post a Comment