Типы хранимых процедур

В Microsoft SQL Server существует несколько типов хранимых процедур. В данном подразделе для каждого из них приведено краткое описание и пример.

Пользовательские хранимые процедуры

Хранимые процедуры — это модули или подпрограммы, в которых содержится повторно используемый код. Хранимая процедура принимает входные параметры, выполняет инструкции языка описания данных (DDL) и языка обработки данных (DML), возвращает клиенту табличные или скалярные результаты, а также выходные параметры. В SQL Server 2008 хранимая процедура может относиться к одному из двух типов: Transact-SQL или CLR.

Transact-SQL

Хранимой процедурой Transact-SQL называется сохраненная коллекция инструкций языка Transact-SQL, которая может принимать и возвращать параметры. Например, хранимая процедура может содержать инструкции, производящие вставку новой строки в одну или несколько таблиц на основе значений, полученных от клиентского приложения, или же возвращать приложению данные из базы данных. Например, в веб-приложении электронной коммерции хранимая процедура может возвращать сведения о конкретных продуктах, в зависимости от критериев поиска, заданных пользователем в интерактивном режиме.

CLR

Хранимая процедура CLR представляет собой ссылку на метод среды CLR платформы Microsoft .NET Framework, который может принимать и возвращать пользователю параметры. Они реализованы в виде общих статических методов класса в сборке платформы .NET Framework. Дополнительные сведения см. в разделе Хранимые процедуры CLR.

Расширенные хранимые процедуры

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Вместо этого используйте интеграцию со средой CLR.

Расширенные хранимые процедуры позволяют создавать собственные внешние подпрограммы на языках программирования (например на С). Они представляют собой библиотеки DLL, которые могут динамически загружаться и выполняться экземпляром Microsoft SQL Server. Выполнение расширенных хранимых процедур осуществляется непосредственно в адресном пространстве экземпляра SQL Server и программируется при использовании интерфейсов API расширенных хранимых процедур SQL Server.

ПримечаниеПримечание

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

Системные хранимые процедуры

Многие административные действия в SQL Server осуществляются при помощи специальных процедур, которые называются системными хранимыми процедурами. Например, sys.sp_changedbowner — это системная хранимая процедура. Физически системные хранимые процедуры хранятся в базе данных ресурсов и имеют префикс sp_. Логически же они отображаются в любой системной или пользовательской базе данных в схеме sys. В SQL Server 2008 к системным хранимым процедурам могут применяться разрешения GRANT, DENY и REVOKE. Полный список системных хранимых процедур см. в разделе Системные хранимые процедуры (Transact-SQL).

SQL Server поддерживает системные хранимые процедуры, обеспечивающие интерфейс между SQL Server и внешними программами для выполнения различных действий по обслуживанию системы. Эти расширенные хранимые процедуры имеют префикс xp_. Полный список расширенных хранимых процедур см. в разделе Основные расширенные хранимые процедуры (Transact-SQL).

См. также

Основные понятия

Другие ресурсы