@@IDENTITY--插入记录返回主键

     在没有使用ORM框架的情况下,添加一条新记录想返回主键就得认识一个这个东西@@IDENTITY的用法了(Nhibernate有添加就自己返回主键的方法).
     @@IDENTITY是MSSqlServer返回插入最后一条记录的一个标识值,只有主键值类型为IDENTITY的才有返回值,否则为NULL.
     如下脚本,创建三个表,一个是主表TestIdent,有一个自增主键,两个是子表TestChild1和TestChild2,以TestIdent表的主键来当外键.
     

Code

 

     运行结果为:
     

Code

     

     运行结果第10行错误是因为表TestChild1的主键不是IDENTITY类型的.
      在实际应用中,在INSERT INTO 语句后加上SELECT @@IDENTITY,Command对象就用ExecuteScalar()方法(执行查询,并返回所查询的结果集的第一行第一列,忽略其它行或列),即可返回最新插入记录的主键.使用存储过程也一样.最好的使用说明是在新用户注册后不用再登录就可保存该用户的对象.
     @@IDENTITY就是得到这样一个主键,作用还有很多.

     

posted @ 2008-12-19 19:48  Done  阅读(1357)  评论(6编辑  收藏  举报