Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语言元素 » 变量 » 全局变量

 

@@identity 全局变量

@@identity 变量保存插入到 IDENTITY 列或 DEFAULT AUTOINCREMENT 列中的最新值,如果最新插入是在不含这些列的表中进行的,则为零。

值 @@identity 特定于连接,并且随着每次向表中插入行而递增。如果一个语句插入多行,则 @@identity 反映上次插入的行的 IDENTITY 值。如果受影响的表不包含 IDENTITY 列,则 @@identity 设置为 0。

INSERT 或 SELECT INTO 语句的失败,或者包含 INSERT 或 SELECT INTO 语句的事务的回退,都不会影响 @@identity 的值。@@identity 会保留上次插入到 IDENTITY 列中的值,即使插入该值的语句未能提交。

@@identity 和触发器

当插入操作导致了参照完整性动作或者触发了触发器时,@@identity 的行为就如同堆栈一样。例如,如果表 T1(具有标识列或自动增量列)的插入操作触发了向表 T2(也具有标识列或自动增量列)中插入一行记录的触发器,那么返回给执行此插入操作的应用程序或过程的值就是插入到 T1 的值。在触发器内,@@identity 在插入到 T2 前具有 T1 值,插入后具有 T2 值。如果触发器需要访问这两个值,它可以将其复制到局部变量。