我在这个语句中创建了我的数据库中的表
CREATE TABLE tPerson
(
id INT NOT NULL PRIMARY KEY identity(1,1)
, name NVARCHAR(100) not null
, email NVARCHAR(30) not null
)
GO
Run Code Online (Sandbox Code Playgroud)
现在我用INSERT插入新值.我的问题是如何才能获得当前添加行的ID?任何的想法 ??
假设SQL服务器,您应该查看这篇文章,以便更好地理解检索身份.
这是一个片段:
SELECT @@ IDENTITY
它返回在连接上生成的最后一个IDENTITY值,无论生成该值的表如何,也不管生成该值的语句的范围如何.@@ IDENTITY将返回在当前会话中输入到表中的最后一个标识值.虽然@@ IDENTITY仅限于当前会话,但不限于当前范围.如果您在表上触发了导致在另一个表中创建标识的触发器,您将获得最后创建的标识,即使它是创建它的触发器.
SELECT SCOPE_IDENTITY()
它返回在连接上生成的最后一个IDENTITY值以及同一范围内的语句,而不管生成该值的表.与@@ IDENTITY一样,SCOPE_IDENTITY()将返回在当前会话中创建的最后一个标识值,但它也会将其限制为当前范围.换句话说,它将返回您显式创建的最后一个标识值,而不是由触发器或用户定义的函数创建的任何标识.
SELECT IDENT_CURRENT('tablename')
它返回表中生成的最后一个IDENTITY值,无论创建该值的连接如何,也不管生成该值的语句的范围如何.IDENT_CURRENT不受范围和会话的限制; 它仅限于指定的表格.IDENT_CURRENT返回在任何会话和任何范围内为特定表生成的标识值.
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |