使用ALTER SCHEMA传输表时索引会发生什么?

时间:2016-10-03 09:19:58

标签: sql sql-server tsql

我有一个大量的工作,每晚运行,并且对在不同的模式(EmptySchema)中的表上运行的数据库产生较小的影响,然后将其交换到通常的位置(UsualSchema)使用

{{1}}

有效地交换了两张桌子。

但是,我需要在UsualSchema表上设置索引。我可以通过在UsualSchema表上禁用它们然后在交换发生后重新启用它们来执行此操作吗?或者我每次都要在换出的表上创建它们?或者在两个地方都有重复的索引,并根据需要禁用/启用它们(导致源代码控制中的重复,所以不理想)?有没有更好的方法呢?

有一个聚簇索引和五个非聚簇索引。

感谢。

1 个答案:

答案 0 :(得分:0)

索引(包括支持约束的索引)由ALTER SCHEMA传输,因此您可以在源和目标对象架构中使用它们。

约束名称是基于表架构的架构范围,其他索引名称由表/视图本身确定范围。因此,可以在同一模式中但在不同的表上具有相同的索引名称。约束名称在架构中必须是唯一的。