1

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

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

当您通过从另一个表中运行选择来获取插入的值时,如何做到这一点?

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

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

4

1 回答 1

6

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

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

于 2015-06-17T19:36:07.973 回答