Оператор CREATE для скалярных пользовательских функций имеет достаточно простой синтаксис для функций всех типов:
CREATE FUNCTION имя_функции ([список_параметров]) RETURNS тип_данных AS BEGIN [операторы_tsql] RETURN (возвращаемое_значение) END
Имя_функции должно удовлетворять правилам, действующим для идентификаторов. Хотя список_параметров в описании оператора CREATE занимает иное место, чем список параметров для хранимой процедуры, они имеют аналогичный синтаксис:
@имя_параметра тип_данных [= значение_по_умолчанию]
Имя_параметра должно соответствовать правилам, принятым для идентификаторов, и начинаться с символа @. Пользовательские функции могут иметь до 1024 входных параметров. Выходные параметры пользовательские функции не поддерживают – единственным значением, возвращаемым функцией, является результат ее выполнения. Заметим, что список_параметров является необязательным, но наличие скобок обязательно.
Фраза RETURNS определяет тип возвращаемых функцией значений. Скалярные функции могут возвращать любые скалярные системные типы данных, за исключением timestamp, text, ntext или image.
Операторы BEGIN...END, которыми ограничиваются операторы_tsql, составляющие тело функции, являются обязательными, даже если тело функции состоит из одного оператора RETURN.
Создайте скалярную функцию






Примечание. Созданные здесь пользовательские функции мы используем в следующем разделе.