2011-09-08 42 views
0

是可能的吗?如果是,如何?在索引视图中使用多语句视图

这里的错误消息试图创建它,当我得到: 无法对视图“视图名称”创建索引,因为它引用了内联或多语句表值函数“函数名”。考虑在视图定义中手动扩展函数定义,或者不索引视图。

+0

不,这是不可能的。即使在单个语句查询中可以在索引视图中使用它们之前,也有许多限制。你的multistatement tvf做什么? –

+0

请参阅[本文](http://technet.microsoft.com/en-us/library/cc917715.aspx#XSLTsection127121120120)的“查看限制”一节以获取索引视图中不允许的内容。 –

回答

0

看看这个名单,并确定你的观点是否通过了所有检查点:

  • 的ANSI_NULLS和QUOTED_IDENTIFIER选项被执行CREATE VIEW语句时必须已设置为ON 。 OBJECTPROPERTY 函数通过ExecIsAnsiNullsOn或 ExecIsQuotedIdentOn属性报告此视图。

    对于执行 所有创建 视图引用的表的CREATE TABLE语句,ANSI_NULLS选项必须已设置为ON。

    视图不能引用任何其他视图,只能引用基表。

    视图引用的所有基表必须与视图位于相同的数据库 中,并且与视图具有相同的所有者。

    视图必须使用SCHEMABINDING选项创建。 Schema 绑定将视图绑定到基础基表的模式。

    视图中引用的用户定义的功能必须已创建 与SCHEMABINDING选项

    表和用户定义的函数必须在视图中由两部分名称 引用。一部分,三部分和四部分名称不允许使用 。

    视图中表达式引用的所有函数必须是确定性的 。函数OBJECTPROPERTY 的IsDeterministic属性报告用户定义的函数是否具有确定性。 有关更多信息,请参见确定性和不确定性 函数。

来源:here.

+0

不确定你在使用什么原理来粗体显示文本?相关位肯定是**视图不能引用任何其他视图,只有基表。** –