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