我正在使用SqlServer 2005,我有一个表格,其中我有一个自动递增列但由于某种原因,自动增量字段不以1开头,而是有一些随机数,如21,91。为什么会这样?
答案 0 :(得分:1)
您需要为列设置Seed
....或者如果您之前已输入行,则需要在表格上执行TRUNCATE TABLE
命令...
TRUNCATE TABLE XYZ
答案 1 :(得分:1)
mssql没有像其他数据库一样使用max(id)+ 1作为身份。它存储最后使用的id并正在递增它。
您可以重新标记身份:
DBCC CHECKIDENT ('tablex', RESEED, 1)
或截断表格,这也是删除所有数据:
TRUNCATE TABLE tablex
您当然可以将重新标识的身份与最后一个值结合起来:
DBCC CHECKIDENT ('tablex', RESEED, (SELECT max(id) + 1 FROM tablex))
但是要注意由于冲突而重新生成id会产生错误,自动增量ID是唯一的!