Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000. Сивохин А.В - 70 стр.

UptoLike

[AS]
RETURN [ ( ] select-stmt [ ) ]
Основная часть параметров, используемая при создании функции типа Inline,
аналогична параметрам функций типа Scalar. Тем не менее, создание функций типа
Inline имеет свою специфику. После ключевого слова RETURNS всегда должно
указываться ключевое слово TABLE. Таким образом, функция Inline должна строго
возвращать значение типа данных table. Как видно, структура возвращаемого
значение типа table не указывается явно при описании собственно типа данных.
Вместо этого сервер будет автоматически использовать для возвращаемого
значения table структуру, возвращаемую запросом SELECT, который является
единственной командой функции. Код этого запроса задается с помощью
аргумента select-stmt. Как видно из синтаксиса команды, код запроса может быть
дополнительно помещен в круглые скобки.
Особенностью функции Inline является то, что структура значения table
создается динамически в ходе выполнения запроса, а не указывается явно при
определении типа после ключевого слова RETURNS. Возвращаемое функцией
значение table может быть использовано непосредственно в запросе, то есть в
разделе FROM запроса можно указывать непосредственно имя функции со всеми
входными параметрами.
Функции Multi-statement. Создание функций этого типа выполняется с
помощью команды CREATE FUNCTION, имеющей следующий синтаксис:
CREATE FUNCTION [owner_name.] function_name
( [ { @parameter_name scalar_parameter_data_type
[ = defauTt ] } [ ,...n ] ] )
RETURNS @return_variable TABLE < table_type_definition >
[WITH <function_option> [ , . . .n ]]
[AS]
BEGIN
function_body
RETURN
END
    [AS]
    RETURN [ ( ] select-stmt [ ) ]
    Основная часть параметров, используемая при создании функции типа Inline,
аналогична параметрам функций типа Scalar. Тем не менее, создание функций типа
Inline имеет свою специфику. После ключевого слова RETURNS всегда должно
указываться ключевое слово TABLE. Таким образом, функция I n l i n e должна строго
возвращать значение типа данных table. Как видно, структура возвращаемого
значение типа table не указывается явно при описании собственно типа данных.
Вместо этого сервер будет автоматически использовать для возвращаемого
значения table структуру, возвращаемую запросом SELECT, который является
единственной командой функции. Код этого запроса задается с помощью
аргумента select-stmt. Как видно из синтаксиса команды, код запроса может быть
дополнительно помещен в круглые скобки.
    Особенностью функции I n l i n e является то, что структура значения table
создается динамически в ходе выполнения запроса, а не указывается явно при
определении типа после ключевого слова RETURNS. Возвращаемое функцией
значение t a b l e может быть использовано непосредственно в запросе, то есть в
разделе FROM запроса можно указывать непосредственно имя функции со всеми
входными параметрами.
    Функции Multi-statement. Создание функций этого типа выполняется с
помощью команды CREATE FUNCTION, имеющей следующий синтаксис:
    CREATE FUNCTION [owner_name.] function_name
    ( [ { @parameter_name scalar_parameter_data_type
                        [ = d ef au Tt ] } [ , . . . n ] ] )
    RETURNS @return_variable TABLE < table_type_definition >
    [WITH  [ , . . .n ]]
    [AS]
    BEGIN
    function_body
    RETURN
    END