2011-03-10 16 views
2

我有一个tinyint列,它是自动增量。 我怎样才能将它设置为从0而不是1 我用开始:DBCC CHECKIDENT(“MyTable的”,RESEED,0) 但是当我插入一条记录,它从1重填一列

回答

3

开始您将获得0作为下一个标识值,如果该表从未创建任何行,或者如果删除了所有具有truncate的行,否则您将获得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) 
+0

感谢您的回复,但我的表具有外键,现在可以做什么? – 2011-03-10 11:05:56

+0

您也可以使用删除,然后重新设置为-1。 '删除MyTable'然后' DBCC CHECKIDENT('MyTable',RESEED,-1)' – 2011-03-10 11:11:44

+0

@Filip OP正在使用'tinyint',因此改为-1不起作用。 – 2011-03-10 12:01:31

1

您需要Truncate the table删除所有数据,那么你必须确保你有列定义是这样的:

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

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

插入将有下一行值为0