Синтаксис для Изменения и Удаления Хранимых Процедур
Хранимые процедуры часто изменяются в ответ на запросы от пользователей или на изменения определений основных таблиц. Чтобы изменить существующую хранимую процедуру и сохранить разрешения, используйте оператор ALTER PROCEDURE. SQL Server заменяет предыдущее определение хранимой процедуры при использовании ALTER PROCEDURE.
Учитывайте следующие факты, когда Вы используете оператор ALTER PROCEDURE:
■ Если Вы хотите изменить хранимую процедуру, которая была создана при использовании опции WITH ENCRYPTION, Вы должны включить эту опцию в оператор ALTER PROCEDURE, чтобы сохранить те функциональные возможности, которые обеспечивает эта опция.
■ ALTER PROCEDURE изменяет только одну процедуру. Если Ваша процедура вызывает другие хранимые процедуры, то вложенные хранимые процедуры не изменяются.
Следующий пример изменяет хранимую процедуру LongLeadProducts, чтобы выбрать дополнительный столбец и сортировать результирующий набор при использовании выражения ORDER BY.
ALTER PROC Production.LongLeadProducts
AS
SELECT Name, ProductNumber, DaysToManufacture
FROM Production.Product
WHERE DaysToManufacture >= 1
ORDER BY DaysToManufacture DESC, Name
GO
Используйте оператор DROP PROCEDURE, чтобы удалить определяемые пользователем хранимые процедуры из текущей базы данных.
Прежде, чем Вы удалите хранимую процедуру, выполните хранимую процедуру sp_dependsдля определения объектов, которые зависят от этой хранимой процедуры, как показано в следующем примере.
Следующий пример удаляет хранимую процедуруLongLeadProducts.
DROP PROC Production.LongLeadProducts
Хранимые процедуры более гибки, когда Вы включаете параметры как часть определения процедуры, потому что Вы можете создать более универсальную прикладную логику.
Из этого урока Вы узнаете, как включать входные и выходные параметры и как использовать возвращаемые значения в хранимых процедурах.
Хранимая процедура взаимодействует с программой, которая вызывает процедуру, через список до 2100 параметров. Входные параметры позволяют информации быть переданной в хранимую процедуру; тогда эти значения могут использоваться как локальные переменные в процедуре.