日期:2014-05-19  浏览次数:20781 次

一个数据库插入的问题
我有一个表,其主键是int并且为自动增长的。当我向这个表中插入一项并且不提供主键的时候,数据库会给我自动添加一个唯一的主键。

我的问题是:
我该怎么得到这个数据库自动给我设置的主键值?
也就是我该怎么得到我刚刚插入的那一项的主键值?


------解决方案--------------------
插入之后马上 select @@identity from youetable 即可
如果是存储过程可以把@@identity作为插入之后的返回值
------解决方案--------------------
这涉及到数据库设计的问题,建议不要使用identity字段做主键~如果没有其他唯一性标志(约束/索引),你插进去的记录自己都找不到。
------解决方案--------------------
为避免多用户操作数据库取值不正确
正确应该要这样取:
SELECT * FROM table WHERE (AutoIncreaseColumn = SCOPE_IDENTITY())