索引视图和标量UDF

时间:2010-02-09 09:43:03

标签: sql-server tsql

可以在索引视图中使用UDF,还是会破坏SCHEMABINDING逻辑?

例如,如果在视图的where子句中我有类似的东西

WHERE
     UserCanSeePost(UserId,PostId)

然后,此UDF将在另一个表上执行查找以检查某些限制。我猜这不能在索引视图中完成吗?

2 个答案:

答案 0 :(得分:3)

是的,如果它是deterministic并且本身有SCHEMABINDING

另见Indexed views

  

...
  必须使用SCHEMABINDING选项创建视图中引用的用户定义函数   ...
  引用的所有函数   视图中的表达式必须是   确定性。 IsDeterministic   OBJECTPROPERTY的财产   功能报告是否一个   用户定义的函数是   确定性。欲获得更多信息,   见确定性和非确定性   功能。
  ...

答案 1 :(得分:2)

如果使用SCHEMABINDING创建函数,则可以在构建于其上的视图上使用WITH SCHEMABINDING。我不是100%肯定,但我认为在SQL Server 2005中引入了WITH SCHEMABINDING功能......

编辑 - >不,显然你也可以在2000年使用WITH SCHEMABINDING。