2012-09-24 71 views

回答

68

使用表变量获得ID

DECLARE @id int 
DECLARE @table table (id int) 
INSERT INTO MyTable(name) 
OUTPUT inserted.id into @table 
VALUES('XYZ') 

SELECT @id = id from @table 
+3

感谢先生,是不是可以直接分配给int变量? –

+3

不,你不能使用局部变量。如果使用上面的代码,则可以访问数据并将表中的值设置为变量 –

+17

@RakeshHolkar - INSERT语法允许插入多条记录,因此OUTPUT语法必须能够处理多条记录。因此,即使您只插入一条记录,OUTPUT也会向您返回一组数据。即使该集合只有一个字段,但它是一个集合,而不是一个整数。 – MatBailie