作用域:在SQLSERVER作用域就是一个模块-存储过程,触发器,函数或批处理
会话: 一个用户连接产生的所有上下文信息
相同点:都是返回最后插入的标识值
不同点:
@@identity :返回当前会话最后一个标识值,不限于特定的作用域 ;
ident_current('tablename'):返回任何会话,任何作用域中的指定表中生成的最后一个标识值 ;
scope_identity :返回当前会话当前作用域任何表生成的最后一个标识值 。
舉例:
CREATE TABLE [dnt_postid] (
[pid] [int] IDENTITY (1, 1) NOT NULL ,
[postdatetime] [datetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dnt_postid] WITH NOCHECK ADD
CONSTRAINT [PK_dnt_postid] PRIMARY KEY CLUSTERED
(
[pid]
) ON [PRIMARY]
GO
DEClARE @postid int
INSERT INTO [dnt_postid] ([postdatetime]) VALUES(GETDATE())
SELECT @postid=SCOPE_IDENTITY()