Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12402|Відповідь: 3

[Джерело] Оновити метод роботи самозростаючого стовпця ID у базі даних SQL Server

[Копіювати посилання]
Опубліковано 23.08.2018 12:20:44 | | | |
У щоденній розробці SQL Server стовпець ідентичності типу Identity часто використовується як самозростаюче число таблиці. Наприклад, номер артикулу, серійний номер запису тощо. Посилання на самозростаючі ідентифіковані стовпці значно полегшують розробку програм для баз даних, але іноді цей впертий тип поля також може спричинити проблеми.

1. Модифікувати значення полів ідентифікаційного стовпця:

Іноді для реалізації функції необхідно змінити значення поля типу Ідентичності, що самозростає, але ця операція за замовчуванням не дозволена через тип стовпця ідентичності. Наприклад, якщо в базі даних додано 5 даних, які додаються нормально, і 2 видалені в цей момент, то якщо дані додаються знову, самозростаюча ідентифікаційна колонка автоматично отримає значення 6, але якщо ви хочете призначити значення 3 при вставці даних, це за замовчуванням не дозволено. Якщо ви хочете змінити значення цього поля, ви можете повністю контролювати вставку значення ідентифікаційного поля, але методи все одно існують, ха-ха.

ВСТАНОВИТИ IDENTITY_INSERT /[СТІЛ/] [УВІМКНЕНО| ВИМКНЕНО]
Використовуючи наведене вище твердження, ви можете легко контролювати, чи автоматично зростатиме стовпець ідентифікатора в таблиці, тобто чи дозволено вручну вказувати значення поля ідентифікатора при вставці запису. Якщо вказано як on, ви можете вказати значення ідентифікаційного стовпця при вставці, що не збільшує автоматично призначене значення. Звісно, якщо ви його використаєте, потрібно використати цей оператор, щоб вимкнути перемикач до стандартного стану, інакше поле не автоматично збільшить призначене значення при наступному введенні даних.

2. Скинути значення поля ідентифікаційного стовпця:

Коли частина запису даних видаляється, а новий запис додається пізніше, значення ідентифікаційного стовпця матиме великий інтервал простою, що виглядає дуже неприємно. Навіть якщо видалити всі записи в таблиці, значення стовпця ідентичності продовжуватиме автоматично зростати і безкінечно зростати, а не зростатиметься з нуля. Початкове значення самозростаючого поля можна скинути за допомогою наступного оператора:

DBCC CHECKIDENT(ТАБЛИЦЯ, [RESEED| NORESEED], [1])
Вищенаведене твердження змусить початкове значення заданої таблиці скинути до 1. Однак, якщо ви не хочете скидати сід до 1, можна замінити третій параметр на значення насіння, яке хочете використати. Якщо ви хочете знати поточне насіння замість скидання ідентифікованого seed, потрібно використовувати NORESEED замість встановлення третього параметра.




Попередній:SQL Server 2012 авто-зростання стовпців із проблемами стрибка значення
Наступний:Windows не запускає сервіс Redis, помилка 1067: процес несподівано завершується.
 Орендодавець| Опубліковано 23.08.2018 12:57:08 |
1. Коли всі дані в таблиці видаляються, вони автоматично збільшуються до нуля. ( урізана таблиця TableName )

2. Не видаляйте дані таблиці, безпосередньо скидайте значення авторосту. ( DBCC CHECKIDENT ('TableName', RESEED, 0)
 Орендодавець| Опубліковано 23.08.2018 13:01:32 |
 Орендодавець| Опубліковано 13.02.2019 09:59:15 |
Перегляньте поточні значення колонок із самозбільшенням у таблиці:
    DBCC CHECKIDENT (TableName)

Змініть поточне значення стовпця з самозбільшенням у таблиці:
    DBCC CHECKIDENT (TableName, RESEED, значення)
    RESEED — це не назва стовпця, вона записується фіксовано.


Наприклад, якщо я хочу змінити поточне значення стовпця з самозбільшенням у таблиці ділення на 30, я можу використати наступну команду
DBCC CHECKIDENT (Дивізіон, RESEED, 30)
Тоді використовуйте
DBCC CHECKIDENT (Дивізіон)
Видно, що поточне значення — 30
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com