1

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

类似于以下内容:

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

有没有办法做到这一点?

4

2 回答 2

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

单击此处在 SQL Fiddle 上查看它的实际效果。

于 2013-09-04T06:45:43.340 回答
1

试试这个——

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

INSERT INTO @temp (name)
OUTPUT INSERTED.id
VALUES ('test1'), ('test2')
于 2013-09-04T06:49:12.713 回答