Думайте о ITVF
как о view
, в который вы можете передавать параметры.Он по существу включен в ваш скрипт, который ссылается на него, как если бы он был простым старым SQL, а затем выполнен.Вот почему они выполняются лучше, чем функции с несколькими табличными значениями, которые должны выполняться как отдельные операторы.
В связи с этим в ваших примерах оператор:
select *
from InlineFun (1)
по существупередается в механизм запросов как:
select *
from (select *
from Number
where n = 1
) as a
Таким образом, чтобы фактически ответить на ваш вопрос, область действия функции совпадает с областью оператора, который ее вызывает.