我正在使用 SqlServer 2005,并且我有一个表,其中有一个自动递增列,但由于某种原因,自动递增字段不是以 1 开头,而是使用一些随机数,如 21,91。为什么会这样?
问问题
2120 次
2 回答
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 是唯一的!
于 2012-04-10T09:26:41.930 回答
1
您需要Seed
为列设置...。或者如果您之前输入了行,则需要TRUNCATE TABLE
在表上执行命令...
TRUNCATE TABLE XYZ
于 2012-04-10T07:55:33.543 回答