我目前正在使用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,即使这没有帮助。