Типы хранимых процедур
В MicrosoftSQL 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, которые могут динамически загружаться и выполняться экземпляром MicrosoftSQL 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).
См. также