可以在索引视图中使用UDF,还是会破坏SCHEMABINDING逻辑?
例如,如果在视图的where子句中我有类似的东西
WHERE
UserCanSeePost(UserId,PostId)
然后,此UDF将在另一个表上执行查找以检查某些限制。我猜这不能在索引视图中完成吗?
答案 0 :(得分:3)
是的,如果它是deterministic并且本身有SCHEMABINDING
...
必须使用SCHEMABINDING选项创建视图中引用的用户定义函数 ...
引用的所有函数 视图中的表达式必须是 确定性。 IsDeterministic OBJECTPROPERTY的财产 功能报告是否一个 用户定义的函数是 确定性。欲获得更多信息, 见确定性和非确定性 功能。
...
答案 1 :(得分:2)
如果使用SCHEMABINDING创建函数,则可以在构建于其上的视图上使用WITH SCHEMABINDING。我不是100%肯定,但我认为在SQL Server 2005中引入了WITH SCHEMABINDING功能......
编辑 - >不,显然你也可以在2000年使用WITH SCHEMABINDING。