增加列大小的ALTER表不会反映在History(版本化)表中

时间:2018-01-30 13:40:43

标签: sql-server

我目前正在使用SQL Server 2016,并且我有一个桌面,系统VERSIONING TURNED ON。增加列大小的alter命令不会反映在历史记录表(版本化表)中。请你指教一下吗?

我使用以下命令

创建了表格
CREATE TABLE Report (
    ReportId          INTEGER       NOT NULL,     
    ReportName        VARCHAR(300)  NULL,
    CONSTRAINT PK_RPT PRIMARY KEY (ReportId)
    )


ALTER TABLE Report
ADD ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(),
    ValidTo DATETIME2 GENERATED ALWAYS AS ROW END NOT NULL DEFAULT CAST('9999-12-31 23:59:59.9999999' AS DATETIME2),
    PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo);

ALTER TABLE ICEBERG.Report
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = ICEBERG.ReportHistory));

我现在正在尝试修改此表中的列大小ReportName,但列大小的更改未反映在ReportHistory表中。

ALTER TABLE ICEBERG.Report SET (SYSTEM_VERSIONING = OFF); -- note comment below

ALTER TABLE ICEBERG.Report ALTER COLUMN ReportName VARCHAR(500) NULL;

ALTER TABLE ICEBERG.Report SET (SYSTEM_VERSIONING = ON); -- note comment below

请注意,我试图只执行alter table命令而不像上面那样打开/关闭SYSTEM_VERSIONING,即使这没有帮助。

0 个答案:

没有答案