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