sql - How do I use an INSERT statement's OUTPUT clause to get the identity value? -
if have insert statement such as:
insert mytable ( name, address, phoneno ) values ( 'yatrix', '1234 address stuff', '1112223333' )
how set @var int
new row's identity value (called id
) using output clause? i've seen samples of putting inserted.name table variables, example, can't non-table variable.
i've tried ouput inserted.id @var
, set @var = inserted.id
, neither have worked.
thanks in advance.
you can either have newly inserted id being output ssms console this:
insert mytable(name, address, phoneno) output inserted.id values ('yatrix', '1234 address stuff', '1112223333')
you can use e.g. c#, when need id calling app - execute sql query .executescalar()
(instead of .executenonquery()
) read resulting id
back.
or if need capture newly inserted id
inside t-sql (e.g. later further processing), need create table variable:
declare @outputtbl table (id int) insert mytable(name, address, phoneno) output inserted.id @outputtbl(id) values ('yatrix', '1234 address stuff', '1112223333')
this way, can put multiple values @outputtbl
, further processing on those. use "regular" temporary table (#temp
) or "real" persistent table "output target" here.
Comments
Post a Comment