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
  • 704,970
  • 168
  • 1,303
  • 1,425
franchesco totti
  • 552
  • 1
  • 6
  • 25

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
  • 8,924
  • 4
  • 39
  • 42
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
  • 115,199
  • 22
  • 161
  • 180