Создание и использование определяемой пользователем функции



Создание и использование определяемой пользователем функции

Определяемая пользователем функция — это новый объект Microsoft SQL Server 2000, аналогичный представлению и хранимой процедуре. Отличие ее от упомянутых объектов состоит в том, что она всегда, как и любая другая функция, возвращает некоторое значение. Причем в зависимости от того, какое значение возвращает функция, она относится к одному из трех типов:

  • встроенная;
  • табличная;
  • скалярная.


Встроенная определяемая пользователем функция представляет собой инструкцию SELECT, которая возвращает обновляемый набор записей.

Табличная определяемая пользователем функция может содержать несколько инструкций SQL и возвращает необновляемый набор записей.

Скалярная определяемая пользователем функция возвращает скалярное значение одного из следующих типов данных: int, decimal, varchar, sql_variant или table.

Встроенные и табличные функции обычно употребляются в предложении FROM инструкции SQL, скалярная же функция может быть использована в любом месте запроса, где разрешено использование имени поля таблицы. Кроме этого, определенная пользователем функция может быть применена в качестве источника данных для формы, отчета и поля со списком в форме, однако она не может быть использована в качестве источника записей для страницы доступа к данным.

Правила создания определенной пользователем функции те же самые, что и для хранимой процедуры. То есть можно использовать для ее создания Конструктор запросов, если она состоит из одной инструкции SELECT, или редактор SQL, если тело функции содержит несколько инструкций SQL. В первом случае вы можете использовать ярлык Создание функции в режиме конструктора (Create function in designer) в списке запросов окна проекта. Во втором случае необходимо нажать кнопку Создать (New) и выбрать соответствующую строку в списке операций диалогового окна Новый запрос (New Query).

Подробнее об определенных пользователем функциях см. документацию по Microsoft SQL Server.



Содержание раздела