Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
15.04.2015
Размер:
3.4 Mб
Скачать

IS_SRVROLEMEMBER(''роль'' [, ''учетная запись''])

С помощью этой функции можно проверить членство

указанной учетной записи в той или иной фиксированной роли сервера. Если пользователь состоит в указанной роли, то возвращается 1, в противном случае – 0.

Если имя роли или учетной записи не распознано, возвращается значение NULL. Если имя учетной записи не указано, то подразумевается текущий пользователь.

42

Функции управления метаданными

- позволяют получить информацию о метаданных объектов.

Например,

COL_LENGTH(''таблица'', ''столбец'')

– функция возвращает информацию о количестве

байт, отведенных в таблице для того или иного столбца.

Статистические функции

С помощью функций этого типа можно получить информацию о состоянии системы и работе сервера. Для получения данной

информации можно также использовать

системную хранимую процедуру sp_monitor.

Примеры таких функций:

@@CPU_BUSY – возвращает количество миллисекунд, которое затратил центральный процессор во время последнего запуска SQL

Server;

44

@@IO_BUSY – возвращает количество миллисекунд, которое система SQL Server ожидала выполнения операций ввода-вывода во время последнего запуска;

@@TIMETICKS – возвращает количество микросекунд в одном такте процессора.

8.2. Пользовательские функции

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

пользователь может создавать пользовательские функции (ПФ), содержащие часто используемый код.

При реализации на языке T-SQL сложных и часто используемых алгоритмов, встает вопрос о сохранении разработанного кода для дальнейшего применения.

Эту задачу можно решать с помощью хранимых процедур (ХП), но их нельзя использовать

непосредственно в выражениях, т.к. ХП требуют промежуточного присвоения возвращенного значения

переменной, которая затем и указывается в выражении.

46

Возможные преимущества пользовательских функций

В отличие от ХП, ПФ позволяют вызов разработанных алгоритмов непосредственно в выражениях.

ПФ сходны с ХП, но, в отличие от них, могут применяться в запросах так же, как и системные

встроенные функции.

ПФ, возвращающие таблицы, могут стать

альтернативой просмотрам. Просмотры ограничены одним выражением SELECT, а ПФ могут включать

дополнительные выражения, что позволяет создавать

более сложные и мощные конструкции.

47

Рассмотрим создание ПФ двух типов:

скалярные функции – возвращают скалярные значения;

табличные функции – возвращают результат в виде таблицы, в свою очередь, делятся на

внедренные (функции Inline);

табличные функции с множеством инструкций (функции Multi-statement).

48

Tабличные функции подчиняются тем же

правилам, что и скалярные функции, но

возвращают результат в виде таблицы. Поэтому они в основном применяются

в предложении FROM инструкции SELECT, и их можно соединять с другими таблицами и представлениями.

Эти функции используют табличные переменные – особый тип переменных, служащий для временного хранения набора строк, - результата работы табличной функции.

49

8.2.1. Cкалярные функции

Cкалярные функции принимают 0 или

несколько входных параметров и возвращают

одно скалярное значение.

По использованию эти функции похожи на

функции, реализуемые в других языках

программирования. Для создания скалярной функции используется инструкция CREATE FUNCTION, имеющая следующий общий синтаксис:

50

CREATE FUNCTION [имя_схемы.] имя_функции

( [ { @имя_параметра

[AS] [имя_схемы.] тип_данных_параметра [ = значение_параметра_по_умолчанию] }

[, …n] ] )

RETURNS тип_возвращаемых_данных [ WITH <function_option> [, …n] ]

[ AS ]

BEGIN тело_функции

RETURN скалярное_выражение END [ ; ]

51

<function_option>::=

{ [ENCRYPTION] | [SCHEMABINDING] | [EXECUTE_AS_Clause] }

52

Соседние файлы в папке ИПК_Занятия_ОПБД