CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

如何准确获得标识值

作者: Echo,  出处:IT专家网, 责任编辑: 李书琴, 
2008-01-04 11:52
  

  【IT专家网独家】问题:

  在向一个含有标识列的数据库表里插入行的时候,我需要获得插入行后数据库引擎生成该行的标识值。我怎么样才可以准确获得这个标识值呢?

  专家解答:

  SQL Server有三种不同的函数可以用来获得含有标识列的表里最后生成的标识值:

  •   @@IDENTITY
  •   SCOPE_IDENTITY()
  •   IDENT_CURRENT(‘tablename’)

  以上三个函数都可以返回数据库引擎最后生成插入标识列的值。但是,根据插入行的范畴(或者来源,例如:存储过程或触发器)以及插入该行的连接不同,这三个函数在功能上也有所不同。

  @@IDENTITY函数可以返回所有范围内当前连接插入最后所生成的标识值(即包括任何调用的存储过程和触发器)。这个函数不止可以适用于表。函数返回的值是最后表插入行生成的标识值。

  SCOPE_IDENTITY()函数跟上一个函数几乎是一摸一样的,只有一个不同的地方:即前者返回的值只限于当前范围(即执行中的存储过程)。

  最后是IDENT_CURRENT函数,它可以用于所有范围和所有连接,获得最后生成的表标识值。跟前面两个函数不同的是,这个函数只用于表,并且使用tablename作为一个参数。

  我们可以举实例来演示上述函数是如何运作的。

  首先,我们创建两个简单的例表:一个代表客户表,一个代表审计表。创建审计表的目的是为了跟踪数据库里插入和删除信息的所有记录。

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i