пересеивать колонку - PullRequest
2 голосов
/ 10 марта 2011

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

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Вы получите 0 в качестве следующего значения идентификатора, если в таблице никогда не было строк с момента ее создания или если вы удалили все строки с помощью усечения, в противном случае вы получите начальное значение + 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 голос
/ 10 марта 2011

Вам нужно будет Обрезать таблицу , чтобы удалить все данные, затем вы должны убедиться, что у вас есть определение столбца, подобное этому:

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...