1

假设我有两个数据库DB1,并且DB2都在同一个实例下。里面有一张桌子tab2。我DB2创建了一个视图DB1以获取tab2DB2

CREATE VIEW [dbo].[Tab2]
AS
SELECT *
FROM  DB2.dbo.Tab2

然后我尝试为tab2in创建一个密钥DB1

CREATE UNIQUE CLUSTERED INDEX tab2_Key
ON dbo. tab2 (id2)

这会引发以下错误:

消息 1939,级别 16,状态 1,第 1 行
无法在视图“Tab2”上创建索引,因为该视图未绑定架构。

我该如何解决这个问题?

4

1 回答 1

4

好吧,具有索引的视图有几个规则(与模式绑定所需的规则有一些级联)。

规则之一是视图不能包含 SELECT *。另一个是它必须与它引用的对象存在于同一个数据库中。

我可以为您列出规则,但它们列在此处此处的文档中。而且我认为告诉你这些规则无论如何都不会取得多大的成就。

您能否准确解释一下您认为此视图上的聚集索引会提供什么好处?有人告诉您索引视图“更快”吗?在这种情况下,我看不到它对查询的作用,DB2.dbo.Tab2特别是如果该表已经在id2. 这只是在几个方面闻起来不对...

于 2012-07-03T18:59:56.010 回答