得到标记列的值

来源:互联网 发布:java开源文档管理系统 编辑:程序博客网 时间:2024/06/09 23:39

在SQL Server中可以使用3种方法来获取系统生成的标记值:

  •  @@identity——这个老资格的全局变量可以返回SQL Server为任意表、连接和作用域所生成的最近一个标识值。如果在你进行insert操作的时间和检查@@identity的时间之间有另外一个insert操作被执行,@@identity返回就不是系统为你的insert所生成的标识值,而是它为最近的这个insert操作所生成的标识值。
  • scope_identity()——是由SQL Server 2000新引入的系统函数,它可以返回在当前调用的批处理程序或者过程的作用域内系统所生成的最近一个标识值。建议使用这个方法,因为这是一种最安全的确定你最近生成的标识值的方法。
  • ident_current(table)——也是由SQL Server 2000新引入的系统函数。ident_current()返回系统为指定表所生成的最近一个标识值。虽然,这个函数看起来与scope_identity()很类似,但是它只会返回指定表的标识值,不管对其他的表是否进行过insert操作,这样可以防止深藏在触发器中的另外一个insert操作影响到这个函数返回的结果。