Поделиться через


Основы хранимых процедур

Хранимые процедуры в Microsoft SQL Server аналогичны процедурам в других языках программирования:

  • они обрабатывают входные аргументы и возвращают вызывающей процедуре или пакету значения в виде выходных аргументов;

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

  • они возвращают значение состояния вызывающей процедуре или пакету, таким образом передавая сведения об успешном или неуспешном завершении (и причины последнего).

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

По сравнению с программами Transact-SQL, которые хранятся локально на клиентских компьютерах, хранимые процедуры SQL Server имеют следующие преимущества.

  • Хранимые процедуры регистрируются на сервере.

  • Хранимые процедуры могут иметь атрибуты безопасности (например, разрешения) и цепочки владения, кроме того, к ним можно прикреплять сертификаты.

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

  • Хранимые процедуры позволяют сделать защиту приложений более надежной.

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

  • Хранимые процедуры поддерживают модульное программирование.

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

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

    Это обеспечивает уровень косвенности, упрощающий развитие программного кода.

  • Хранимые процедуры позволяют уменьшить сетевой трафик.

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

См. также

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

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