经常会用到的往数据库插入一条记录并获取该条记录的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)