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

UptoLike

Функции Multi-statement, как и функции Inline, возвращают значение типа
table. Однако, в отличие от функций типа Inline, при создании функций Multi-
statement необходимо явно задать структуру возвращаемого значения. Эта
структура указывается непосредственно после ключевого слова TABLE и, таким
образом, является частью определения возвращаемого типа данных. Для описания
структуры используется конструкция <table_type_definition>, которая имеет
следующий синтаксис:
<table_type_definition> :: =
( { <column_definition> | <table_constraint> } [ ….n ] )
Синтаксис конструкций <col umn_def inition> и <table_constraint> пол-
ностью соответствует одноименным структурам, используемым при создании
обычных таблиц с помощью команды CREATE TABLE. Набор данных, которые
будут возвращены, должен формироваться с помощью команд INSERT,
выполняемых в теле функции. В теле функции допускаются различные
конструкции Transact-SQL, которые могут контролировать значения,
размещаемые в наборе строк (row set). При работе с командой INSERT
необходимо явно указать имя объекта, в который необходимо вставить строки.
Поэтому в функциях Multi-statement, в отличие от функций Inline, необходимо
присвоить какое-то имя значению table. Это имя и указывается с помощью
параметра Return_variable.
Завершение работы функции, помимо ошибок выполнения, происходит в
случае, когда в коде функции встречается ключевое слово RETURNS. В отличие от
функций типа Scalar при использовании команды RETURNS не нужно указывать
значение, которое должно быть возвращено. Сервер автоматически возвратит набор
данных типа table, имя и структура которого была указана после ключевого слова
RETURNS. Напомним, что в теле функции может быть указано более одной команды
RETURNS.
Нередко случаются ситуации, когда в довольно хорошо продуманной функции
обнаруживаются ошибки. В этом случае возникает необходимость в ее изменении.
Помимо того, что причиной изменения функции является ошибка, причиной также
может быть и изменение алгоритма работы функции. Помимо этих двух причин
    Функции Multi-statement, как и функции Inline, возвращают значение типа
table. Однако, в отличие от функций типа Inline, при создании функций Multi-
statement необходимо явно задать структуру возвращаемого значения. Эта
структура указывается непосредственно после ключевого слова TABLE и, таким
образом, является частью определения возвращаемого типа данных. Для описания
структуры используется конструкция , которая имеет
следующий синтаксис:
     :: =
    ( {  |  } [ ….n ] )
    Синтаксис конструкций  и  пол-
ностью соответствует одноименным структурам, используемым при создании
обычных таблиц с помощью команды CREATE TABLE. Набор данных, которые
будут возвращены, должен формироваться с помощью команд INSERT,
выполняемых в теле функции. В теле функции допускаются различные
конструкции      Transact-SQL,        которые   могут   контролировать   значения,
размещаемые в наборе строк (row set). При работе с командой INSERT
необходимо явно указать имя объекта, в который необходимо вставить строки.
Поэтому в функциях Multi-statement, в отличие от функций Inline, необходимо
присвоить какое-то имя значению table. Это имя и указывается с помощью
параметра Return_variable.
    Завершение работы функции, помимо ошибок выполнения, происходит в
случае, когда в коде функции встречается ключевое слово RETURNS. В отличие от
функций типа Scalar при использовании команды RETURNS не нужно указывать
значение, которое должно быть возвращено. Сервер автоматически возвратит набор
данных типа table, имя и структура которого была указана после ключевого слова
RETURNS. Напомним, что в теле функции может быть указано более одной команды
RETURNS.
    Нередко случаются ситуации, когда в довольно хорошо продуманной функции
обнаруживаются ошибки. В этом случае возникает необходимость в ее изменении.
Помимо того, что причиной изменения функции является ошибка, причиной также
может быть и изменение алгоритма работы функции. Помимо этих двух причин