Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 12402|Ответ: 3

[Источник] Обновите метод работы саморастущего столбца ID в базе данных SQL Server

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

1. Измените значения полей идентификационного столбца:

Иногда для реализации функции необходимо изменить значение саморастущего типа Identity, но эта операция по умолчанию не разрешена из-за типа тождественного столбца. Например, если в базе данных нормально добавлено 5 элементов данных, и 2 удаляются в этот момент, то при повторном добавлении данных саморастущая идентификационная колонка автоматически получит значение 6, но если вы хотите присвоить значение 3 при вставке данных, это по умолчанию запрещено. Если вы хотите изменить значение этого поля, вы можете полностью контролировать вставку значения идентифицирующего поля, методы всё равно существуют, ха-ха.

ПОСТАВИТЬ IDENTITY_INSERT /[СТОЛ/] [ВКЛ| ВЫКЛЮЧЕНО]
Используя вышеуказанное утверждение, вы легко можете контролировать, будет ли саморастущий столбец идентификатора в таблице автоматически расти, то есть можно ли вручную указывать значение поля идентификатора при вставке записи. Если указано как on, вы можете указать значение поля идентифицирующего столбца при вставке, что не увеличивает автоматически присвоенное значение. Конечно, если вы его используете, нужно использовать этот оператор, чтобы отключить переключатель в состояние по умолчанию, иначе поле не будет автоматически увеличивать значение при следующей вставке данных.

2. Сбросьте значение поля столбца идентификации:

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

DBCC CHECKIDENT(ТАБЛИЦА, [RESEED| NORESEED], [1])
Вышеуказанное утверждение заставит сбросить начальное значение указанной таблицы до 1. Однако, если вы не хотите сбрасывать seed до 1, можно заменить третий параметр на нужное значение seed. Если вы хотите узнать текущий seed вместо сброса определённого 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 9: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