sql-server-2012 - 内联函数与普通选择
问题描述
现在我正在研究SQL Server 2012中的函数。我知道有三种函数类型。但我很困惑Inline Table-Value Functions
。
让我解释。
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)
从上面select
的结果是一样的。那么Inline TVF
..的确切范围是什么?
笔记 :
我在用Microsoft SQL Server 2012
解决方案
可以将 aITVF
视为view
可以将参数传递给的。它本质上包含在您的脚本中,就像它是普通的旧 SQL 一样引用它,然后执行。这就是为什么它们比必须作为单独语句执行的多语句表值函数执行得更好的原因。
因此,在您的示例中,声明:
select *
from InlineFun (1)
本质上是传递给查询引擎的:
select *
from (select *
from Number
where n = 1
) as a
因此,要实际回答您的问题,函数的范围与调用它的语句的范围相同。
推荐阅读
- javascript - 你好,我想得到一个所有符号都是小写的字符串。代码不想工作,我不明白我在哪里会出错
- c++ - C++/SFML 超级马里奥游戏与块的碰撞问题
- angular - Ionic 4/Angular 以原子方式打开默认选项卡
- laravel - 从表单按钮浏览服务器上的图像,就像上传图像时一样
- vue.js - 未进行任何更改时的Vue本机颜色选择器@input
- javascript - 用新元素刷新下拉列表后,它会以垂直滚动方式显示
- ios - 为什么发布过多会导致 ARC 崩溃?
- sql - 按组的 SQL 总数
- java - (Java) 在另一个数组中搜索一个数组的值的索引
- sql - 如何保持 SQL 数据和 Elasticsearch 同步,以及从哪个搜索?