Информатика. Понятие хранимой процедуры

Хранимая процедура (Stored procedure) – это именованный набор операторов Transact-SQL, хранящийся на сервере.

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

Хранимые процедуры являются самостоятельными объектами базы данных, к которым можно разрешать или запрещать доступ командами GRANT и DENY. Например, выполнение следующей команды запретит выполнение команд хранимой процедуры hello для пользователя mng:

DENY exec ON hello TO mng.

Хранимые процедуры схожи с процедурами других языков программирования и позволяют:
• включать различные операторы и вызывать другие хранимые процедуры;
• принимать входные параметры и возвращать значения в виде выходных параметров.

MS SQL Server поддерживает следующие виды хранимых процедур:
• системные процедуры – хранятся в системной базе данных master, их имена начинаются с символов sp_. Используются для решения специализированных системных задач: администрирования, безопасности и др.;

• пользовательские процедуры – создаются, сохраняются и исполняются пользователями в контексте только той бд, для которой были созданы;
• временные процедуры – доступны только в активном соединении, после закрытия соединения удаляются автоматически. Имена таких процедур должны начинаться с символа #.

Как и большинство объектов MS SQL Server хранимая процедура может быть создана с помощью средств Transact-SQL или с применением графического интерфейса Management Studio.

При создании хранимой процедуры необходимо учитывать следующие особенности:
• процедура может содержать в себе бесконечное количество операторов, кроме операторов создания этих объектов: представления, правила, процедуры, умолчания;
• создание процедуры может выполнить пользователь роли sysadmin, db_owner или db_ddladmin, а также имеющий право на выполнение команды CREATE PROC;
• количество параметров не должно превышать 2100.