插入后使用select获取SCOPE_IDENTITY()

时间:2015-06-17 19:16:35

标签: sql-server tsql scope-identity

我在插入语句中获取范围标识时遇到问题。我以前做了很多次,但总是定义了值:

INSERT INTO t_table (field1, Field2) 
VALUES (field1Val, field2Val); 
SET @id = SCOPE_IDENTITY()

如果通过从另一个表运行select来获取插入的值,那么如何执行此操作?

INSERT INTO t_table (field1, Field2) 
SELECT value1, value2 FROM #tempTable; 
SET @id = SCOPE_IDENTITY()

以上运行没有错误,但@id为空

1 个答案:

答案 0 :(得分:6)

由于您尝试在此处检索多个值,因此需要使用OUTPUT子句。它会将所有新插入的值返回到表或表变量中。

https://msdn.microsoft.com/en-us/library/ms177564.aspx