【SQL Server】SCOPE_IDENTITY
SCOPE_IDENTITY函数用于返回插入到同一作用域中的标识列内的最后一个标识值。作用域是指一个模块,如存储过程、触发器、函数或批处理。如果两个语句位于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
使用场景和示例。
INSERT INTO table_name (column1, column2) VALUES (value1, value2); SELECT SCOPE_IDENTITY();
在SQL Server中,SCOPE_IDENTITY常用于以下场景:
- 存储过程或触发器:当在存储过程或触发器中插入数据时,SCOPE_IDENTITY可以返回当前作用域内最后一次插入操作的标识值。例如,如果有一个存储过程,该过程中包含一个插入操作,并随后进行另一个插入操作,SCOPE_IDENTITY将返回第二次插入操作的标识值。
- 并发环境:在多用户并发环境中,SCOPE_IDENTITY确保每个用户获取到他们自己插入的行的正确自增标识列值,避免了混淆和错误。
与其他函数的区别
SCOPE_IDENTITY与IDENT_CURRENT和@@IDENTITY函数类似,都返回插入到标识列中的值,但它们在使用上有区别:
- SCOPE_IDENTITY:仅返回当前作用域内的最后一个标识值。
- IDENT_CURRENT:不受作用域和会话的限制,返回指定表的当前标识值。
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。

浙公网安备 33010602011771号