如何取得刚刚插入MSSQL自增长的id值

 我来答
greystar_cn
2017-11-09 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
   在MSSQL2000中提供了两个函数(ident_current,scope_identity)
 
      当你插入记录后,可以调用函数:
         调用方式举列:print ident_current('table') ,这样就可以得到 新的identity值。
      或者:print scope_identity() '这将获得在当前存储过程,触发器等其他程序创建的最新记录的identity值. 这个的好处就是改进了@@identity的不足.全局变量@@identity有一个问题,当对一张表执行insert时,如果该表有触发器程序在执行插入操作,然后,接着在另一张表中插入记录,这样返回@@identity值就是第二张表的identity值。
     备注:以上用法在MSSQL2000或以上版本均可用,如果是比较底的版本需要自己另写存储过程来处理。这里就不写了,因为我认为现在用2000以下的版本的人太少了。至于我恐怕没有机会用了,呵呵!
 
 
     测试:
           1.新建一个表  TBLINDEDITY
                     CREATE TABLE [TBLINDEDITY] (
                               [id] [int] IDENTITY (1, 1) NOT NULL ,
                               [name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
                    ) ON [PRIMARY]
                    GO
            2.插入3条数据
                    insert into TBLINDEDITY values('dong')
                    insert into TBLINDEDITY values('chao')
                    insert into TBLINDEDITY values('hui')
            3.用这个函数测试一下
                    print ident_current('TBLINDEDITY')
            4.结果:
                    3
 
      结论:测试成功!这个问题已经尘埃落地.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式