Update izdelie

SET [CENA] = @name2

WHERE [NAIMENOVANIE] = @name1

По окончании ввода текста проверьте синтаксис и сохраните процедуру (аналогичные действия описаны выше в п. «Создание и модификация триггера»). Имя процедуры появится в списке процедур в правой рабочей панели основного окна ЕМ.

Для модификации процедуры выберите ее из списка в правой панели ЕМ и инициируйте команду всплывающего меню Properties. Появится окно Stored Procedure Properties.

Вызов процедуры

Хранимую процедуру можно вызвать на выполнение из окна Query утилиты QA. Синтаксис команды вызова:

EXEC имя–процедуры список–значений– параметров

(2)

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

Выберите в дереве Проводника пункт User Defined Function и, активизируя всплывающее меню, дайте команду New User Defined Function. В появившемся окне User Defined Function Properties в рабочую область выводится шаблон текста функции.

Функции пользователя представляют собой самостоятельные объекты базы данных, такие, например, как хранимые процедуры или триггеры. Функция пользователя располагается в определенной базе данных и доступна только в ее контексте.

В SQL Server имеются следующие классы функций пользователя:

- Scalar – функции возвращают обычное скалярное значение, каждая может включать множество команд, объединяемых в один блок с помощью конструкции BEGIN...END;

- Inline – функции содержат всего одну команду SELECT и возвращают пользователю набор данных в виде значения типа данных TABLE;

- Multi-statement – функции также возвращают пользователю значение типа данных TABLE, содержащее набор данных, однако в теле функции находится множество команд SQL (INSERT, UPDATE и т.д.). С их помощью и формируется набор данных, который должен быть возвращен после выполнения функции.

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

Функции Scalar

Создание и изменение функции данного типа выполняется с помощью команды:

{CREATE | ALTER } FUNCTION [владелец.]имя_функции

([ { @имя_параметра скаляр_тип_данных

[=default]}])

RETURNS скаляр_тип_данных

[WITH {ENCRYPTION | SCHEMABINDING}]

AS

BEGIN

<тело_функции>

RETURN скаляр_выражение

END

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

Кроме того, в теле функции может выполняться обращение к различным объектам БД, и потому изменение или удаление соответствующих объектов может привести к нарушению работы функции. Чтобы избежать этого, требуется запретить внесение изменений, указав при создании функции ключевое слово SCHEMABINDING.

Когда в ходе выполнения кода функции встречается ключевое слово RETURN, выполнение функции завершается и как результат ее вычисления возвращается значение, указанное непосредственно после слова RETURN. В теле функции разрешается использование множества команд RETURN, которые могут возвращать различные значения. Единственное условие – тип данных возвращаемого значения должен совпадать с типом данных, указанным после ключевого слова RETURNS.

Например. Создать функцию скалярного типа для вычисления суммарного количества поставляемого товара, поступившего за определенную дату (2005 год). Владелец функции – пользователь с именем dbo.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: