2009-08-12 23 views
3

我试图在我的VIEW视图上设置索引。 第一个错误是1939,需要架构绑定。已加入数据库的SQL Server索引视图语法

好的,没有问题。现在

ALTER VIEW xyz WITH SCHEMABINDING AS abc 

,在该视图中我使用一个本地表 [DBO] [ReleantTable]和两个连接表 从其他数据库在同一台服务器上。

OtherDbName..OtherRelevantTable

更改VIEW失败,说明OtherDbName..OtherRelevantTable 对模式绑定无效。

我想这只是一个语法问题。任何人都可以让我暗示 如何解决我的OtherDb?

回答

4

为了创建索引视图,基表必须驻留在同一个数据库中。

了解更多详情请咨询下面的Microsoft联机丛书参考:

http://msdn.microsoft.com/en-us/library/ms191432(SQL.90).aspx

+0

THX的答案。实际上,为了性能原因,我需要使用该索引。有没有什么办法可以从其他“地方”收集数据,从而获得该视图索引的单个字段? – KB22 2009-08-12 10:43:34

+2

@ KB22:要回答您的进一步查询,不幸的是答案是否定的。您看到为了在视图上创建一个非聚集索引,首先必须创建一个聚簇索引。为了做到这一点,SQL Server必须物理实现来自视图的表数据,并且这样做必须验证视图的全部内容。当视图包含分布在不同数据库中的基表时,无法执行此操作。 – 2009-08-12 10:59:08

+1

除了我以前的评论,我建议一个好的起点是构建满足您的选择要求的交叉数据库查询,然后检查执行计划。确保所有的连接谓词和搜索参数都有合适的索引。 – 2009-08-12 10:59:57