我需要选择最后插入的行标识值,所以我尝试了下面的代码
select SCOPE_IDENTITY() from tb_new_product_Name_id
但它没有显示。我犯了错误?
答案 0 :(得分:1)
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。 希望它可以帮到你。
答案 1 :(得分:1)
您无需在此指定表名。 SCOPE_IDENTITY()只是一个函数,它返回当前作用域中生成的最近标识值。
答案 2 :(得分:0)
试试这个。
/* 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