Sql server 2012 内联函数与普通选择
现在我正在学习SQL Server 2012中的函数。我知道有三种函数类型。但是我被Sql server 2012 内联函数与普通选择,sql-server-2012,table-valued-parameters,Sql Server 2012,Table Valued Parameters,现在我正在学习SQL Server 2012中的函数。我知道有三种函数类型。但是我被内联表值函数弄糊涂了 让我解释一下 select * into Number from ( values (1, 'A'),(2, 'B'),(3, 'C') ) number (N, C) create function InlineFun (@i int) returns table as return (select * from Number where n = @i) select * f
内联表值函数
弄糊涂了
让我解释一下
select * into Number
from (
values
(1, 'A'),(2, 'B'),(3, 'C')
) number (N, C)
create function InlineFun (@i int)
returns table
as
return (select * from Number where n = @i)
select * from Number where n = 1
select * from InlineFun (1)
从上面的选择,结果相同。那么内联TVF
的确切范围是什么
注:
我正在使用Microsoft SQL Server 2012
将ITVF
视为可以向其传递参数的视图。它基本上包含在引用它的脚本中,就好像它是一个普通的旧SQL然后被执行一样。这就是为什么它们比必须作为单独语句执行的多语句表值函数性能更好的原因
因此,在您的示例中,陈述如下:
select *
from InlineFun (1)
基本上以以下形式传递给查询引擎:
select *
from (select *
from Number
where n = 1
) as a
因此,为了真正回答您的问题,函数的范围与调用它的语句的范围相同。因此,ITVF
没有daze范围。我不确定您所说的“daze范围”是什么意思抱歉@iamdave,我只是用谷歌尝试了一个短语。我的意思是没有特殊的发展空间ITVF@IdontKnowEnglish这是正确的。如果我的答案是您想要的,请在将来为其他有相同问题的用户标记它。我将询问有关SQL函数的更多信息。继续支持。