1

I have stored procedure which has 3 insert statements. What I need is after each insert I want to know the inserted value of the ID by querying Scope_Identity.

Something like following :

insert into t1(name)values("david")
set @v1=Scope_Identity()

insert into t2(name)values("david2")
set @v2=Scope_Identity()

insert into t3(name)values("david3")
set @v4=Scope_Identity()

Is there any way to do that?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
franchesco totti
  • 582
  • 1
  • 7
  • 28

2 Answers2

3
CREATE TABLE t1 (id int identity, name varchar(30))
CREATE TABLE t2 (id int identity, name varchar(30))

DECLARE @v1 int, @v2 int

INSERT t1 (name) VALUES ('david')
SET @v1 = Scope_Identity()

INSERT t2 (name) VALUES ('david2')
SET @v2 = Scope_Identity()

SELECT @v1, @v2

Click here to see it in action at SQL Fiddle.

davmos
  • 9,324
  • 4
  • 40
  • 43
1

Try this one -

DECLARE @temp TABLE
(
      id INT IDENTITY(1,1) PRIMARY KEY
    , name VARCHAR(20)
)

INSERT INTO @temp (name)
OUTPUT INSERTED.id
VALUES ('test1'), ('test2')
Devart
  • 119,203
  • 23
  • 166
  • 186