-2

我正在使用 SqlServer 2005,并且我有一个表,其中有一个自动递增列,但由于某种原因,自动递增字段不是以 1 开头,而是使用一些随机数,如 21,91。为什么会这样?

4

2 回答 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 回答