Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к: SQL Server 2016 (13.x) и более поздние версии
База данных SQL Azure
Управляемый экземпляр SQL Azure
SQL Database в Microsoft Fabric
С временными таблицами система выполняет несколько проверок согласованности. Эти проверки гарантируют, что схема соответствует временным требованиям, а данные согласованы и остаются согласованными. В DBCC CHECKCONSTRAINTS заявлении также предусмотрены временные проверки.
Системные проверки согласованности
Перед тем как для SYSTEM_VERSIONING будет установлено значение ON, выполняется ряд проверок для таблицы журнала и текущей таблицы. Эти проверки относятся к проверке схемы и проверки данных (если таблица истории не пуста). Система также выполняет проверку согласованности во время выполнения.
Проверка схемы
Когда вы создаёте или изменяете таблицу, чтобы она стала временной, система проверяет, что выполнены следующие требования:
Названия и количество столбцов одинаковы как в текущей, так и в таблице истории.
Типы данных совпадают для каждого столбца между текущей таблицей и таблицей истории.
Для столбцов периода задано значение
NOT NULL.Текущая таблица имеет ограничение первичного ключа, а таблица истории не имеет ограничения первичного ключа.
В таблице журнала не определены
IDENTITYстолбцы.В таблице журнала не определены триггеры.
В таблице журнала не определены внешние ключи.
Для таблицы журнала не определены ни табличные, ни столбцовые ограничения. Однако в таблице журнала допускаются значения по умолчанию для столбцов.
Таблица журнала не размещена в файловой группе, доступной только для чтения.
Таблица журнала не настроена для отслеживания изменений или захвата измененных данных.
Проверка согласованности данных
Перед тем как для SYSTEM_VERSIONING устанавливается значение ON, а также в рамках любой операции языка манипулирования данными (DML), система выполняет следующую проверку: ValidTo >= ValidFrom
Когда вы создаёте ссылку на существующую таблицу истории, вы можете выбрать проверку согласованности данных. Эта проверка согласованности данных гарантирует, что существующие записи не пересекаются и что каждая запись соответствует временным требованиям. Проверка согласованности данных выполняется по умолчанию. Проводите проверку согласованности данных, когда данные между текущей и исторической таблицами могут быть несинхронизированы. Например, выполните это, когда вы включите существующую таблицу истории, которая уже содержит исторические данные.
Предупреждение
Ручные изменения системных часов приводят к неожиданному сбою системы, поскольку проверки согласованности данных во время выполнения, предотвращающие ситуации перекрытия (а именно, что время окончания записи не меньше времени её начала), завершаются сбоем.
Используйте DBCC CHECKCONSTRAINTS
Команда DBCC CHECKCONSTRAINTS включает проверки согласованности темпоральных данных. Дополнительные сведения см. в разделе DBCC CHECKCONSTRAINTS.
Связанные материалы
- Темпоральные таблицы
- Приступите к изучению системных версионных темпоральных таблиц
- Секционирование с использованием темпоральных таблиц
- Особенности и ограничения темпоральной таблицы
- Безопасность темпоральной таблицы
- Управление хранением исторических данных в системных темпоральных таблицах
- Системно-версионированные темпоральные таблицы с таблицами, оптимизированными для памяти
- Представления и функции темпоральных метаданных таблицы