Нека първо започнем с разбирането на свойството Identity и след това можем да преминем към стъпка, как можем да го нулираме? Създайте таблица на SQL Server с колона за идентичност, като използвате скрипта по-долу
USE TEST GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))
Нека вмъкнем записи по-долу, като използваме изразите по-долу
INSERT INTO dbo.Person(name)
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
Ще бъде вмъкнат само един запис, а вторият запис ще се провали, тъй като размерът на низа е повече от размера на типа данни в колоната Фигура 1 – Вмъкване на записи в таблица на SQL Server
Проверете самоличността Стойност на колона: За да проверим стойността на идентичността на колона, можем да използваме по-долу израз
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
Fig 2- DBCC CHECKIDENT to see the Identity Value
Дори вмъкването беше неуспешно за втори запис, но стойността на идентичността се увеличава. Ако вмъкнем следващия запис, стойността на идентичността ще бъде 3 за това, както можем да видим на фигура 3.
Ето няколко начина да нулирате стойността на идентичността на колона след изтриване данни.
Нулиране на стойността на самоличността чрез TRUNCATE: Ако искаме да изтрием всичко от таблицата и таблицата няма връзка с външен ключ, можем да съкратим таблицата и това ще почисти данните, както и ще зададе стойността на идентичността Фигура 3 - Използвайте Truncate за почистване на таблицата и нулиране на стойността на идентичността
Нулиране на стойността на самоличността чрез използване на DBCC CHECKIDENT: Ако таблицата е във връзка с която и да е друга таблица (първичен-външен ключ), ние няма да можем да съкратим таблицата. В този случай трябва да изтрием стойностите от таблицата с помощта на израза Delete и след това да зададем стойност на идентичност.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
Фигура 4. Изтрийте данните от таблицата и използвайте DBCC CHECKIDENT за повторно задаване на стойността на идентичността
Видео демонстрация:Как да нулирате стойността на колоната за идентичност в таблицата на SQL Server