使用SCHEMABINDING建立索引视图

时间:2011-11-11 15:41:08

标签: sql-server-2008

我们有许多索引视图,当然需要SCHEMABINDING。支持这些视图的基表涉及复制。我们的DBA最近不得不重新创建复制,并说所有这些索引视图都让他感到悲伤,因为他无法删除基表并重新创建它们,我想这就是复制的作用。

他告诉我,在每个索引视图中,他注释掉了“SCHEMABINDING”并保存了视图定义。当他这样做时,每个视图的相关索引发生了什么?它被删除了吗?我是否必须返回每个视图,包括SCHEMABINDING命令,然后重新创建每个关联的索引?

2 个答案:

答案 0 :(得分:8)

如果没有架构绑定,您就无法在视图上拥有索引,因此删除了索引,您必须添加schemabinding并重新创建索引。 http://msdn.microsoft.com/en-us/library/aa933148%28v=sql.80%29.aspx

编辑:@ RedFilter,我刚做了一个测试,是否通过改变视图或DROPing并重新创建它来删除模式绑定,索引将被删除。

答案 1 :(得分:0)

是的,您需要返回每个视图,包含SCHEMABINDING命令,然后重新创建每个关联的索引。

IIRC,索引仍然存在,但没有被使用。因此,您可以右键单击它们以生成DDL以更改索引,然后执行该操作。这可以很容易编写脚本以自动化它。