fea*_*net 1 error-handling primary-key auto-increment sql-server-2008 linq-to-sql
今天有点惊讶发现当插入语句错误时我的自动增量主键仍然增加,结果我们在表中有"缺失"数字.
有没有什么理由为什么SQL这样设计?有没有办法来覆盖这种行为?
我通过Linq-to-SQL访问.
这是设计来处理并发并使其尽可能快(如果3个插入同时发生会发生什么,1会被回滚......这会搞砸一切)..当插入启动时sql server确定身份的价值..如果发生回滚,那些值就不会被重用了.除非你想在每次回滚后运行DBCC CHECKIDENT,否则你无法真正做到这一点.
如果您需要一个可以识别间隙的查询,请查看此如何从SQL Server中的表中返回所有跳过的标识值
下一个版本的SQL Server sequences可能会帮助你解决这些问题,请看一下:首先看一下SQL Server Denali中的序列
| 归档时间: |
|
| 查看次数: |
679 次 |
| 最近记录: |