Insert data in to sql server data table

2019-10-28 18:29发布

我有称为一个表customer_master包括称为柱cust_id与自动增量设置为1。

当我们试图插入记录其工作的罚款,并插入记录,如cust_id插入1,2,3和4,但是当我们做一个事务回滚INSERT命令时产生的错误,这意味着cust_id 5未插入,但当我们插入另一个纪录, cust_id产生6.跳过cust_id 5。

我想设置它,这样如果在插入命令产生的任何错误的身份不会增加。

我们使用C#和SQL Server 2005。

Answer 1:

究其原因SQL Server会,这是为了提高效率。 如果你需要无间隙的序列号,你不应该使用identity ,你将需要实现自己的方案,其中并发事务阻塞,等待下一个值,以防万一初始事务回滚。

这里的第二个查询可用于这一目的 。 但是,你真的需要吗? 如果纯粹是为了美观而我的建议是不要担心!



Answer 2:

您可以使用DBCC CHECKIDENT插入失败后补种标识列。

返回当前标识值和标识列的当前最大值。

将当前标识值给new_reseed_value。



文章来源: Insert data in to sql server data table