DBCC CHECKIDENT (Transact-SQL)
Изменения: 17 ноября 2008 г.
Проверяет текущее значение идентификатора для указанной таблицы и при необходимости изменяет значение идентификатора. Также инструкцию DBCC CHECKIDENT можно использовать для ручной установки нового текущего значения идентификатора для столбца идентификаторов.
Соглашения о синтаксическом обозначении в Transact-SQL
Синтаксис
DBCC CHECKIDENT
(
table_name
[ , { NORESEED | { RESEED [ , new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]
Аргументы
- table_name
Это имя таблицы, для которой выполняется проверка текущего значения идентификатора. Указанная таблица должна содержать столбец идентификаторов. Имена таблиц должны соответствовать требованиям для идентификаторов.
- NORESEED
Определяет, что текущее значение идентификатора не должно изменяться.
- RESEED
Определяет, что текущее значение идентификатора должно изменяться.
- new_reseed_value
Новое значение, предназначенное для использования в качестве текущего значения для столбца идентификаторов.
- WITH NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
Результирующие наборы
В зависимости от того, указаны ли какие-либо параметры для таблицы, содержащей столбец идентификаторов, инструкция DBCC CHECKIDENT возвращает значения (которые могут изменяться):
Checking identity information: current identity value '290', current column value '290'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Изменение начального значения
Начальное значение представляет собой значение, вставляемое в столбец идентификаторов для самой первой строки, загружаемой в таблицу. Все последующие строки содержат текущее значение идентификатора, увеличенное на значение приращения, где текущее значение идентификатора представляет собой последнее значение идентификатора, сформированное для таблицы или представления. Дополнительные сведения см. в разделе Создание и изменение столбцов идентификаторов.
Инструкцию DBCC CHECKIDENT нельзя использовать для выполнения следующих задач.
- Изменение исходного начального значения, которое было указано для столбца идентификаторов при создании таблицы или представления.
- Повторное указание начального значения для существующих строк в таблице или представлении.
Чтобы изменить исходное начальное значение и повторно задать начальное значение для каких-либо существующих строк, необходимо удалить столбец идентификаторов и создать его повторно, указав новое начальное значение. Если таблица содержит данные, то номера идентификаторов добавляются к существующим строкам с учетом указанного начального значения и приращения. Порядок, в котором выполняется обновление строк, не гарантирован.
Замечания
Конкретные изменения, вносимые в текущее значение идентификатора, зависят от определений параметров.
Команда DBCC CHECKIDENT | Изменение текущего значения идентификатора или идентификаторов |
---|---|
DBCC CHECKIDENT ( table_name, NORESEED ) |
Текущее значение идентификатора не сбрасывается. Инструкция DBCC CHECKIDENT возвращает текущее значение идентификатора и текущее максимальное значение столбца идентификаторов. Если эти два значения не равны друг другу, необходимо сбросить значение идентификатора, чтобы избежать потенциальных ошибок или пропусков в последовательности значений. |
DBCC CHECKIDENT ( table_name ) или DBCC CHECKIDENT ( table_name, RESEED ) |
Если текущее значение идентификатора таблицы меньше, чем максимальное значение из содержащихся в столбце, оно устанавливается в максимальное значение в столбце идентификаторов. |
DBCC CHECKIDENT ( table_name, RESEED,new_reseed_value ) |
Текущее значение идентификатора устанавливается равным new_reseed_value. Если со времени создания таблицы в нее не вставлялись строки или все строки были удалены с помощью инструкции TRUNCATE TABLE, то первая строка, вставляемая после запуска инструкции DBCC CHECKIDENT, будет использовать в качестве идентификатора значение new_reseed_value. Иначе следующая вставляемая строка будет использовать new_reseed_value + значение текущего приращения. Если таблица не пустая, установка значения идентификатора меньше, чем максимальное значение столбца идентификаторов может привести к одному из следующих условий.
|
Исключения
В следующей таблице перечислены условия, при которых инструкция DBCC CHECKIDENT не будет выполнять автоматический сброс текущего значения идентификатора, а также представлены способы сброса значения.
Condition | Способы сброса |
---|---|
Текущее значение идентификатора больше максимального значения в таблице. |
или
|
Из таблицы удалены все строки. |
Выполните команду DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) с нужным начальным значением, присвоенным аргументу new_reseed_value. |
Разрешения
Может вызываться либо владельцем таблицы, либо членом предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner или db_ddladmin.
Примеры
А. Сброс текущего значения идентификатора при необходимости
Следующий пример при необходимости сбрасывает текущее значение идентификатора для таблицы Employee
в базе данных AdventureWorks
.
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee");
GO
Б. Сообщение текущего значения идентификатора
Следующий пример сообщает текущее значение идентификатора в таблице Employee
базы данных AdventureWorks
, при этом не исправляя значение идентификатора, если оно окажется неверным.
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee", NORESEED);
GO
В. Принудительная установка текущего значения идентификатора равным 30
В следующем примере текущему значению идентификатора в столбце EmployeeID
в таблице Employee
принудительно устанавливается значение 300. Так как таблица имеет существующие значения, следующая вставляемая строка будет использовать в качестве значения 301, то есть текущее значение идентификатора плюс 1, текущее значение приращения, определенное для столбца.
USE AdventureWorks;
GO
DBCC CHECKIDENT ("HumanResources.Employee", RESEED, 30);
GO
См. также
Справочник
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DBCC (Transact-SQL)
IDENTITY (свойство) (Transact-SQL)
USE (Transact-SQL)
Другие ресурсы
Репликация столбцов идентификаторов
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
17 ноября 2008 г. |
|
14 апреля 2006 г. |
|
5 декабря 2005 г. |
|