sql中插入一条记录并获取该条记录的自动增长ID

经常会用到的往数据库插入一条记录并获取该条记录的ID。

千万不要去,先insert into一条记录,然后查询表格的最后一条记录是多少,这样会有问题的,如果同时有多个连接插入数据的话,你获取的可能不是你刚才的那条记录。

这个是比较小儿科做法,一般人估计不会这么干。

在sql2005以前很多人都是采用SELECT @@Identity来获取上一条记录的自动编号。

在insert into之后紧接着执行@@Identity。

C# ado.net中调用时,把两条语句作为一条sql,同时提交。用ExecuteScalar读取。

insert into employees values('张三1',1,27,'行政部门',getdate(),2300);select @@identity

而在sql2005中提供output关键字,一条语句语句就能搞定。
output inserted.id中id为所在表中自动编号的列名。inserted是固定写法。

在C#中调用同样使用ExecuteScalar就能获取单行单列值了。

insert into employees output inserted.id values('张三1',1,27,'行政部门',getdate(),2300) 

 

posted @ 2013-01-14 14:04  life is a gift  阅读(824)  评论(0编辑  收藏  举报