如何在 SQL Server 2016 中的系统版本时间 Table 上停止系统版本控制?

How to Stopping System-Versioning on a System-Versioned Temporal Table in SQL Server 2016?

我有一个 table 具有系统版本控制(临时 table),但我无法直观地看到设计环境。我这样做是因为我可以看到 SYSTEM_VERSIONING 子句已被使用。我想暂时停止然后启用它。 谁能告诉我?

ALTER TABLE dbo.MyTable SET (SYSTEM_VERSIONING = OFF);   

** Do what ever you want to **

ALTER TABLE dbo.MyTable SET (SYSTEM_VERSIONING = ON);   

查看此Microsoft article了解更多信息

当我使用以下查询时,我的问题已解决:

-- SET SYSTEM_VERSIONING TO OFF
ALTER TABLE [dbo].[MyTable]
SET (SYSTEM_VERSIONING = OFF)
GO

** Do what ever you want to **

-- SET SYSTEM_VERSIONING TO ON
ALTER TABLE [dbo].[MyTable]
SET 
    (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[MyTable_Archive] , DATA_CONSISTENCY_CHECK = ON ))
GO

好像做了SET( SYSTEM_VERSIONING = OFF )之后,table上的PERIOD FOR选项也重置了。

所以这对我有用:

ALTER TABLE dbo.MyTable
    SET (
        SYSTEM_VERSIONING = OFF
    )

GO

/* Do stuff here. */

ALTER TABLE dbo.MyTable
    ADD PERIOD FOR SYSTEM_TIME ( ValidFrom, ValidTo );

ALTER TABLE dbo.MyTable
    SET (
        SYSTEM_VERSIONING = ON (
            HISTORY_TABLE          = dbo.MyTable_History,
            DATA_CONSISTENCY_CHECK = ON
        );

我认为可以将最后两个命令组合成一个 ALTER TABLE 语句,但我还没有找到神奇的咒语。