Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2016 (13.x) и более поздние версии
База данных SQL Azure
Управляемый экземпляр SQL Azure
База данных SQL в Microsoft Fabric
Возможно, вы захотите прекратить управление версиями в темпоральной таблице либо временно, либо навсегда. Это можно сделать, установив условие SYSTEM_VERSIONING
на OFF
.
Установить SYSTEM_VERSIONING = OFF
Остановите системное управление версиями, если в темпоральной таблице нужно провести определенные операции обслуживания или таблица с управлением версиями больше не нужна. В результате этой операции вы получите две отдельные таблицы:
- текущую таблицу с определением периода;
- таблица истории как обычная таблица.
Замечания
Таблица истории перестает записывать обновления во время SYSTEM_VERSIONING = OFF
.
При установке SYSTEM_VERSIONING = OFF
или удалении SYSTEM_TIME
периода не происходит потери данных в темпоральной таблице.
Если вы устанавливаете SYSTEM_VERSIONING = OFF
и не удаляете SYSTEM_TIME
период, система продолжает обновлять столбцы периодов для каждой операции вставки и обновления. Элементы, удаленные из текущей таблицы, не подлежат восстановлению.
Для удаления столбцов периода необходимо сначала отказаться от SYSTEM_TIME
периода. Чтобы удалить столбцы периода, используйте ALTER TABLE <table> DROP <column>;
. Дополнительные сведения см. в разделе "Изменение схемы системной темпоральной таблицы".
При установке SYSTEM_VERSIONING = OFF
все пользователи с достаточными разрешениями могут изменять схему и содержимое таблицы журнала или даже окончательно удалять таблицу журнала.
Невозможно задать SYSTEM_VERSIONING = OFF
, если у вас есть другие объекты, созданные с помощью SCHEMABINDING
расширений темпоральных запросов, таких как ссылки на SYSTEM_TIME
. Это ограничение предотвращает сбой этих объектов при установке SYSTEM_VERSIONING = OFF
.
Окончательное удаление SYSTEM_VERSIONING
Этот пример навсегда удаляет SYSTEM_VERSIONING
и удаляет столбцы с периодами. Удалять столбцы периода необязательно.
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
-- Optionally, DROP PERIOD if you want to revert temporal table to a non-temporal
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Временное удаление SYSTEM_VERSIONING
Следующий список содержит операции, для которых требуется включить управление версиями системой OFF
:
- Удаление ненужных данных из журнала (
DELETE
илиTRUNCATE
) - Удаление данных из текущей таблицы без управления версиями (
DELETE
,TRUNCATE
) - Удаление раздела
SWITCH OUT
из текущей таблицы - Разделите
SWITCH IN
в таблицу истории
В этом примере временно останавливают SYSTEM_VERSIONING
, чтобы позволить выполнение определенных операций обслуживания. Если вы временно остановите управление версиями в качестве необходимых условий для обслуживания таблиц, настоятельно рекомендуется сделать это изменение внутри транзакции, чтобы обеспечить согласованность данных.
При включении системного версионирования не забудьте указать аргумент HISTORY_TABLE
. Невыполнение этого требования приведет к созданию новой таблицы истории, которая будет связана с текущей таблицей. Исходная таблица журнала по-прежнему может существовать как обычная таблица и больше не ассоциируется с текущей таблицей.
BEGIN TRANSACTION;
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
TRUNCATE TABLE [History].[DepartmentHistory]
WITH (PARTITIONS(1, 2));
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory));
COMMIT;
Связанный контент
- Темпоральные таблицы
- Приступите к изучению системных версионных темпоральных таблиц
- Управление хранением исторических данных в системных темпоральных таблицах
- Системно-версионированные темпоральные таблицы с таблицами, оптимизированными для памяти
- Создание системной темпоральной таблицы
- Изменение данных в системной темпоральной таблице
- Запрос данных в системной темпоральной таблице
- Изменение схемы системной темпоральной таблицы