重新列一栏

时间:2011-03-10 10:45:46

标签: sql-server-2005 sql-server-2008

我有一个tinyint列,它是自动增量。 如何将其设置为从0而不是1开始。 我使用:DBCC CHECKIDENT('MyTable',RESEED,0) 但是当我插入记录时,它从1开始。

2 个答案:

答案 0 :(得分:3)

如果表创建后从未包含任何行,或者如果使用truncate删除所有行,则将获得0作为下一个标识值,否则将获得seedvalue + 1。

此处描述:http://msdn.microsoft.com/en-us/library/ms176057%28v=sql.90%29.aspx

这会将下一个身份设置为0

truncate table MyTable
DBCC CHECKIDENT ('MyTable', RESEED, 0)

如果将数据类型从tinyint更改为smallint,则可以重新设置为-1,并在下次插入时获得0.

DBCC CHECKIDENT ('MyTable', RESEED, -1)

答案 1 :(得分:1)

您需要Truncate the table删除所有数据,然后必须确保您具有以下列定义:

Create Table YourTable
(
YourColumn TinyInt Identity(0,1)
...
...
)

然后运行DBCC CHECKIDENT ('MyTable', RESEED, 0)

您插入的下一行的值为0