В ежедневната разработка на SQL Server, колоната идентичност на типа Идентичност често се използва като самонарастващо число на структурата на таблицата. Например, номер на артикул, сериен номер на записа и т.н. Препратките към саморастящи се идентифицирани колони значително улесняват разработването на бази данни, но понякога този упорит тип полето може да създаде и някои проблеми.
1. Променете стойностите на полетата в идентификационната колона:
Понякога, за да се реализира функция, е необходимо да се модифицира стойността на поле от тип Идентичност, което се развива само, но тази операция по подразбиране не е разрешена поради типа на колоната за идентичност. Например, ако в базата данни са добавени нормално 5 части данни и 2 са изтрити в този момент, ако данните се добавят отново, саморастящата се идентификационна колона автоматично ще получи стойност 6, но ако искате да зададете стойност 3 при вмъкване на данни, това по подразбиране не е разрешено. Ако искаш да промениш стойността на това поле, можеш напълно да контролираш вмъкването на стойността на идентификационното поле, все още има методи, хаха.
ЗАДАЙТЕ IDENTITY_INSERT /[МАСА/] [ВКЛЮЧЕНО| ИЗКЛЮЧЕНО] Използвайки горното твърдение, лесно можете да контролирате дали саморастяща се колона с идентификатор в таблица автоматично ще расте, тоест дали имате право ръчно да задавате стойността на полето в колоната за идентификатор при вмъкване на запис. Ако е посочено като on, можете да зададете стойността на идентифициращото колона при вмъкване, което не увеличава автоматично зададената стойност. Разбира се, ако го използвате, трябва да използвате това изявление, за да изключите превключвателя към стандартно състояние, иначе полето няма автоматично да увеличи зададената стойност при въвеждане на данни следващия път.
2. Нулиране на стойността на полето в идентификационната колона:
Когато част от записа на данните бъде изтрита и новият запис добавен по-късно, стойността на колоната за идентификация ще има голям интервал на покой, което изглежда много неприятно. Дори ако изтриете всички записи в таблицата, стойността на колоната за идентичност ще продължи да се увеличава автоматично и безкрайно, вместо да расте от нулата. Стойността на seed на саморастящото се поле може да бъде нулирана чрез следното изявление:
DBCC CHECKIDENT(ТАБЛИЦА, [RESEED| NORESEED], [1]) Горното изявление ще принуди стойността на seed на зададената таблица да бъде нулирана на 1. Въпреки това, ако не искате да нулирате семената на 1, можете да замените третия параметър със стойността на seed, която искате да използвате. Ако искате да знаете текущия seed, вместо да нулирате идентифицирания seed, трябва да използвате NORESEED вместо да задавате третия параметър. |