因为我引用同一个表两次,任何解决方法不能在视图上创建聚集索引?(Cannot create a CL

2019-09-28 13:13发布

我想创建一个索引视图,从几个表中的数据整合,但SQL Server和错误消息抱怨:

不能创建视图“MyView的”指数。 该视图包含对“dbo.Companies”自连接。

该视图的定义是这样的(简本):

SELECT  T.Field1
      , T.Field2
      , P.CompanyName AS ProviderName
      , C.CompanyName AS CustomerName
      , T3.Field1
FROM dbo.Table1 T 
                  INNER JOIN dbo.Companies P ON T.ProviderId = T2.Id
                  INNER JOIN dbo.Companies C ON T.CustomerId = T2.Id
                  INNER JOIN dbo.Table3 ON T.Id = T3.Id

是否有此情况下,任何解决方法吗? 我不想在两个表拆分公司表。

提前致谢。

Answer 1:

你将不能够解决这个问题,索引视图必须符合所列举一定的限制创建索引视图 。 别的不说,外和自我联接不支持(10日限制从上到下)。 它归结为是能够当基表进行更新,更新视图索引引擎的能力。

不知道你的数据模型的准确的所有细节,你确定索引视图是必要的,并且不会对基表的索引就足够了?



文章来源: Cannot create a CLUSTERED INDEX on a View because I'm referencing the same table twice, any workaround?