sql-server-2008 - 使用 SCHEMABINDING 的索引 View

标签 sql-server-2008

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

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

最佳答案

如果没有架构绑定(bind),您就无法在 View 上建立索引,所以是的,索引已被删除,您必须重新添加架构绑定(bind)并重新创建索引。 http://msdn.microsoft.com/en-us/library/aa933148%28v=sql.80%29.aspx

编辑:@RedFilter,我刚刚做了一个测试,无论您是通过更改 View 还是删除并重新创建 View 来删除架构绑定(bind),索引都会被删除。

关于sql-server-2008 - 使用 SCHEMABINDING 的索引 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096350/

相关文章:

sql-server-2008 - T-SQL INSTEAD OF DELETE 触发器在没有 'provocation' 的情况下触发

SQL Server - 删除多列具有空值或零值的行

sql-server - 尝试使用动态 SQL 连接 SQL Server 2008 中的列名

sql-server - 优化sql server数据库

java - Hibernate 无效的列名

nhibernate - 在 NHibernate、Fluent NHibernate 和 SQL Server 2008 中使用时间列

sql-server-2008 - 存储过程中的表类型参数导致操作数类型冲突错误

sql - 存储过程 将变量值设置为单个列

相当于 WM_CONCAT 函数的 SQL Server

sql - 如何返回 COUNT(*) 并将其存储在变量中以便在 VBscript 中进一步使用