【问题标题】:SQL Server view or table-valued function? [duplicate]SQL Server 视图或表值函数? [复制]
【发布时间】:2011-08-24 23:55:51
【问题描述】:

谁有一个很好的决策树来决定何时使用视图以及何时使用 SQL Server 中的表值函数?

【问题讨论】:

  • 也许,我可以重新表述这个问题。通过使用视图或表值函数,我可以轻松完成我需要做的事情。那么使用视图的经验法则是什么?
  • 是的,如果它是一个真正的普通视图并且您没有使用诸如 OPENROWSET 或 CONTEXT_INFO 之类的花哨技巧。
  • JonH,如果人们不比较看起来做同样事情的东西,那么他们就不知道在哪里使用它们。一个猪头评论如果我见过一个。他的问题完全有效

标签: sql-server tsql view user-defined-functions


【解决方案1】:

尽管任何视图几乎都可以轻松转换为内联表值函数,但反之则不然。

如果需要对构造进行参数化,则使用内联表值函数。就优化器而言,内联表值函数基本上是参数化视图,能够将它们与视图组合并推动事物。多语句表值函数与内联表值函数完全不同。

如果您无法使用内联表值函数执行此操作,请使用多语句表值函数。

【讨论】:

    【解决方案2】:

    好的,我会使用我们所做的。我们有表格,但我们从不访问表格,而是访问有关表格的视图。这只是一个安全问题。

    【讨论】:

      【解决方案3】:

      有些事情你不能在视图中做(例如表变量、返回结果集之前的中间结果等)......如果你不需要这些,请查看,如果你需要, sproc/udf :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多