问一下,我希望在插入一条数据的同时,返回该记录的ID
页该ID是由数据库自增的怎么实现???
如果,在插入后,再返回读取最后一条记录的话
这样的话,有可能有多人在操作,这样不安全,有什么更好的方法??

解决方案 »

  1.   

    insert into userinfo(userid) values(11)
    select @@identity
      

  2.   

    insert into userinfo(userid) values(11)
    select top 1 ID from userinfo order by ID desc
      

  3.   

    create procedure add_new_record
    as
    insert into userinfo(userid) values(11)
    select @@identity
      

  4.   

    这里附上一个GUID的使用方法
    http://blog.joycode.com/moslem/archive/2004/03/23/16930.aspx3、GUID 的优缺点1) 优点同 IDENTITY 列相比,uniqueidentifier 列可以通过 NewID() 函数提前得知新增加的行 ID,为应用程序的后续处理提供了很大方便。
    便于数据库移植,其它数据库中并不一定具有 IDENTITY 列,而 Guid 列可以作为字符型列转换到其它数据库中,同时将应用程序中产生的 GUID 值存入数据库,它不会对原有数据带来影响。
    便于数据库初始化,如果应用程序要加载一些初始数据, IDENTITY 列的处理方式就比较麻烦,而 uniqueidentifier 列则无需任何处理,直接用 T-SQL 加载即可。
    便于对某些对象或常量进行永久标识,如类的 ClassID,对象的实例标识,UDDI 中的联系人、服务接口、tModel标识定义等。
    2) 缺点GUID 值较长,不容易记忆和输入,而且这个值是随机、无顺序的,所以使用时要注意场合,最好不要尝试用它来作为你的电子邮件地址 J
    GUID 的值有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着如果在数据库中使用 uniqueidentifier 键,可能会带来两方面的消极影响:存储空间增大;索引时间较慢。综合来说, GUID 的优点带来的便利远超出其缺点带来的影响,随着诸如 WebService 等系统互联与整合技术的不断发展,其唯一标识的特性使得其应用越来越广,在您的应用程序中也应考虑使用它了。