解决方法
在阅读了这里的许多答案之后,我想指出一个内联表值函数和任何其他类型的函数(标量或多行TVF)之间存在很大差异.
内联TVF只是一个参数化视图.它可以像视图一样进行扩展和优化.在“返回结果”或类似之前不需要实现任何内容(尽管不幸的是,语法具有RETURN.
我发现内联TVF对视图的一个很大的好处是它确实强制了所需的参数化,而在视图中,你必须假设调用者将适当地加入或限制视图的使用.
例如,我们在DW中有许多具有典型Kimball星型模型的大型事实表.我有一个以事实为中心的模型的视图,它没有任何限制地调用,将返回数亿行.通过使用具有适当参数化的内联TVF,用户无法意外地询问所有行.两者之间的表现在很大程度上难以区分.