Mux*_*uxa 40 sql t-sql identity sql-server-2005 auto-increment
我有一个奇怪的情况,我的数据库中的一些表从0开始其ID,即使TABLE CREATE具有IDENTITY(1,1).某些表格是这样,但其他表格则不然.它一直工作到今天.
我已经尝试重置标识列:
DBCC CHECKIDENT (SyncSession, reseed, 0);
Run Code Online (Sandbox Code Playgroud)
但是新的记录从0开始.我已经尝试过为所有表做这个,但有些仍然从0开始,有些从1开始.
有什么指针吗?
(我正在使用带有高级服务的SQL Server Express 2005)
gbn*_*gbn 46
DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value )
Run Code Online (Sandbox Code Playgroud)
如果自创建表以来没有向表插入任何行,或者已使用TRUNCATE TABLE语句删除了所有行,则在运行DBCC CHECKIDENT后插入的第一行使用new_reseed_value作为标识.否则,插入的下一行使用new_reseed_value +当前增量值.
因此,对于空表或截断表,这是预期的.
如果您传递重新种子值,数据库将从该新值开始标识:
DBCC CHECKIDENT (SyncSession, RESEED, 0); --next record should be 0 + increment
Run Code Online (Sandbox Code Playgroud)
不过,您不必传递 a 值,如果不传递,IDENTITY(a,b)将改为使用:
DBCC CHECKIDENT (SyncSession, RESEED); --next record should be the seed value 'a'
Run Code Online (Sandbox Code Playgroud)
这通常是更好的做法,因为它使表更接近其初始创建状态。
| 归档时间: |
|
| 查看次数: |
54550 次 |
| 最近记录: |