Sql 如何获取上次插入的标识值
我需要选择最后插入的行标识值,所以我尝试了下面的代码Sql 如何获取上次插入的标识值,sql,sql-server,Sql,Sql Server,我需要选择最后插入的行标识值,所以我尝试了下面的代码 select SCOPE_IDENTITY() from tb_new_product_Name_id 但是它没有显示出来。我在哪里出错?在MS SQL Server中有三个类似的概念-@@IDETITy、SCOPE_IDENTITY()和IDENT_CURRENT() 以下是示例代码: CREATE TABLE TestData ( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(25) NO
select SCOPE_IDENTITY() from tb_new_product_Name_id
但是它没有显示出来。我在哪里出错?在MS SQL Server中有三个类似的概念-@@IDETITy、SCOPE_IDENTITY()和IDENT_CURRENT() 以下是示例代码:
CREATE TABLE TestData (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(25) NOT NULL)
INSERT TestData VALUES('one'), ('two')
CREATE TABLE TrigData (
id INT IDENTITY(100,5) PRIMARY KEY,
name VARCHAR(20) NULL)
INSERT TrigData(name)
VALUES('one'), ('two'), ('three')
CREATE TRIGGER Ztrig
ON TestData
FOR INSERT AS
BEGIN
INSERT TrigData VALUES('from trig')
END
INSERT TestData VALUES('dummy')
SELECT @@IDENTITY AS [@@IDENTITY]
GO
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]
GO
SELECT IDENT_CURRENT('TestData') [IDENT_CURRENT]
它返回115、3和3。
希望对您有所帮助。您不需要在此处指定表名。。 SCOPE_IDENTITY()只是一个返回当前作用域中最近生成的标识值的函数。试试这个
/* Variable */
DECLARE @NewDocumentID int;
/* Insert record statement here. In my case table name is document.*/
INSERT INTO document (name) VALUES ('TEMP');
SELECT @NewDocumentID = SCOPE_IDENTITY();
PRINT @NewDocumentID