T-SQL:
Column A Column B Column C Column D Column E Column F
-------- -------- -------- -------- -------- --------
UR001 Data1 UR002 Data2 UR003 Data3
UR004 Data4 UR001 Data1
UR005 Data5 UR001 Data1
UR003 Data3
执行上面的t-sql然后BEGIN TRANSACTION
Insert (col1,col2,col3)
values (1,2,3)
MS-SQL不会减少自动递增列。知道为什么吗?
我找到了答案here。这个答案是否适用于MS-SQL?
答案 0 :(得分:1)
是的,SQL服务器一旦分配就不会“重复使用”身份号码。更重要的是,不能保证值为consecutive:
事务中的连续值 - 事务插入 不保证多行获取行的连续值 因为表上可能会出现其他并发插入。如果值 必须是连续的,然后交易应使用独占锁 在桌面上或使用SERIALIZABLE隔离级别。
您可以使用DBCC CHECKIDENT更改标识值,但最好将它们视为唯一系统ID,并且不要假设有关订单的任何内容。
你可能还想看看SEQUENCE,它比IDENTITY有一些优势。