约有20张桌子按月划分。它们都有一个日期列,作为分区键。到目前为止,还不错,但是许多分区表是由一个或多个外键引用的。这使我无法执行转出+分出分区。因为SQL Server给出错误:
Msg 50000,级别16,状态1,过程HandleError,第26行[Batch Start Line 0]
表不能被外键约束引用。
[可能是在退出前删除约束,然后在退出后重新创建约束,如您在屏幕快照中所见,有很多FK。另一个选择是在删除最旧的分区之前,在每个受影响的表上执行delete语句。但这需要时间,因为我们正在谈论数百万条记录/分区。
在Oracle中,这似乎没有问题。一旦Oracle看到从FK到PK不再有任何引用,就可以删除该分区。在SQL Server中没有。我尝试过只是为了确定。
有人有更好的主意如何以一种优雅的方式解决这个问题吗?
约有20张桌子按月划分。它们都有一个日期列,作为分区键。到目前为止,还不错,但是许多分区表是由一个或多个外键引用的。 ...
nockeck constraint
命令检查现有数据。然后分区开关将起作用。请参见下面的示例。