2011-03-10 3 views
2

У меня есть столбец tinyint и его автоинкремент. Как я могу установить его, чтобы начать с 0 вместо 1. я использую: DBCC CHECKIDENT («MyTable», переустановку, 0) , но когда я вставляю запись начинается с 1.reseed a column

ответ

3

вы получите 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) 
+0

спасибо за ваш ответ, но у моей таблицы есть внешний ключ, что я могу сделать сейчас? –

+0

Вы также можете использовать delete, а затем reseed до -1. 'delete from MyTable', а затем' DBCC CHECKIDENT ('MyTable', RESEED, -1) ' –

+0

@Filip OP использует' tinyint', поэтому reseed to -1 не работает. –

1

Вы должны Truncate the table, чтобы удалить все данные, то вы должны убедиться, что у вас есть определение столбца, как это:

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

Затем запустите DBCC CHECKIDENT ('MyTable', RESEED, 0)

Следующая строка при вставке будет значение 0

Смежные вопросы