Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Možná budete chtít ukončit správu verzí dočasné tabulky buď dočasně, nebo trvale. Můžete to provést nastavením klauzule SYSTEM_VERSIONING na OFF.
Nastavte SYSTEM_VERSIONING = VYPNUTO
Pokud chcete v časové tabulce provádět určité operace údržby nebo už nepotřebujete verzovanou tabulku, zastavte systémovou verzování. Z důvodu této operace získáte dvě nezávislé tabulky:
- Aktuální tabulka s definicí období
- Tabulka historie jako běžná tabulka
Remarks
Tabulka historie přestane zaznamenávat aktualizace během SYSTEM_VERSIONING = OFF.
V dočasné tabulce nedojde ke ztrátě dat, když nastavíte SYSTEM_VERSIONING = OFF nebo vypustíte SYSTEM_TIME období.
Když nastavíte SYSTEM_VERSIONING = OFF a neodeberete období SYSTEM_TIME, systém bude nadále aktualizovat sloupce období pro každou operaci vložení a aktualizace. Odstranění v aktuální tabulce jsou trvalé.
Abyste smazali sloupce období, musíte vynechat období SYSTEM_TIME. Chcete-li odebrat sloupce období, použijte ALTER TABLE <table> DROP <column>;. Další informace naleznete v tématu Změna schématu dočasné tabulky s verzí systému.
Při nastavování SYSTEM_VERSIONING = OFFmohou všichni uživatelé s dostatečnými oprávněními změnit schéma a obsah tabulky historie nebo dokonce trvale odstranit tabulku historie.
Nemůžete nastavit SYSTEM_VERSIONING = OFF, pokud máte jiné objekty vytvořené pomocí SCHEMABINDING pomocí dočasných rozšíření dotazů, například odkazování na SYSTEM_TIME. Toto omezení zabraňuje selhání těchto objektů, pokud nastavíte SYSTEM_VERSIONING = OFF.
Trvalé odebrání SYSTEM_VERSIONING
Tento příklad trvale odebere SYSTEM_VERSIONING a odstraní sloupce období. Odebrání sloupců období je volitelné.
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;
Dočasné odebrání SYSTEM_VERSIONING
Následující seznam obsahuje seznam operací, které vyžadují nastavení správy verzí systému na OFF:
- Odebrání nepotřebných dat z historie (
DELETEneboTRUNCATE) - Odebrání dat z aktuální tabulky bez verzování (
DELETE,TRUNCATE) - Oddíl
SWITCH OUTz aktuální tabulky - Rozděl
SWITCH INdo tabulky historie
Tento příklad dočasně zastaví SYSTEM_VERSIONING, abyste mohli provádět konkrétní operace údržby. Pokud správu verzí dočasně zastavíte jako předpoklad pro údržbu tabulek, důrazně doporučujeme tuto změnu provést uvnitř transakce, aby byla zachována konzistence dat.
Při zpětném zapnutí správy verzí systému nezapomeňte zadat argument HISTORY_TABLE. Pokud to neuděláte, vytvoří se nová tabulka historie a přidružuje se k aktuální tabulce. Původní tabulka historie může stále existovat jako normální tabulka, již není přidružena k aktuální tabulce.
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;
Související obsah
- temporální tabulky
- Začínáme s časovými tabulkami verzovanými systémem
- Správa uchovávání historických dat v systémově verzovaných časových tabulkách
- Tabulky se systémovou verzí a dočasné tabulky optimalizované pro paměť
- Vytvoření systémově verzované časové tabulky
- Úprava dat v systémově verzované časové tabulce
- Dotazování dat v dočasné tabulce s systémovou verzí
- Změna schématu časové tabulky verzované systémem