存储过程中的Scope_Identity

时间:2013-09-04 06:36:33

标签: sql sql-server visual-studio-2010 stored-procedures

我的存储过程有3个插入语句。我需要的是每次插入后我想通过查询Scope_Identity知道ID的插入值。

如下所示:

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()

有没有办法做到这一点?

2 个答案:

答案 0 :(得分: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

点击here以查看SQL Fiddle的操作。

答案 1 :(得分:1)

试试这个 -

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

INSERT INTO @temp (name)
OUTPUT INSERTED.id
VALUES ('test1'), ('test2')