我在SQL服务器中有一个时态/系统版本化表,我想从原始时态表中复制/复制该表以及整个历史.
可以在SQL Server中复制/复制时态表吗?如果可以,步骤是什么.
这只是当前可用表格的一次性副本.
谢谢
我在SQL服务器中有一个时态/系统版本化表,我想从原始时态表中复制/复制该表以及整个历史.
可以在SQL Server中复制/复制时态表吗?如果可以,步骤是什么.
这只是当前可用表格的一次性副本.
谢谢
我真的看不出这里有什么问题,就像你对任何其他桌子一样复制一份.只需执行两次,一次用于主表,一次用于历史表.
如果您有带有时态表DepartmentHistory的表Department,则只需为两者 Select Into Copies即可.
SELECT * INTO Department_COPY FROM Department
SELECT * INTO DepartmentHistory_COPY FROM DepartmentHistory
Here is a dbfiddle sample of this个
显然,SELECT INTO只是一个简单的备份,如果您希望新表拥有所有键并在以后继续使用,您可以首先手动创建它们,然后使用
INSERT INTO Department_COPY SELECT * FROM Department
INSERT INTO DepartmentHistory_COPY SELECT * FROM DepartmentHistory
如果要在副本上启用历史记录跟踪,可以使用以下命令:
ALTER TABLE Department_COPY ADD PERIOD
FOR SYSTEM_TIME([ValidFrom], [ValidTo]);
ALTER TABLE Department_COPY SET (
SYSTEM_VERSIONING = ON (
HISTORY_TABLE = dbo.DepartmentHistory_COPY,
DATA_CONSISTENCY_CHECK = ON
)
);