DROP PROCEDURE (Transact-SQL)
Область применения:SQL Server (все поддерживаемые версии)
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Удаляет одну или несколько хранимых процедур или групп процедур из текущей базы данных в SQL Server.
Синтаксические обозначения в Transact-SQL
Синтаксис
-- Syntax for SQL Server and Azure SQL Database
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ ,...n ]
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
IF EXISTS
Применимо к: SQL Server (с SQL Server 2016 (13.x); до текущей версии).
Условное удаление процедуры только в том случае, если она уже существует.
schema_name
Имя схемы, которой принадлежит процедура. Имя сервера или базы данных задавать нельзя.
procedure
Имя удаляемой хранимой процедуры или группы хранимых процедур. Нельзя удалить отдельные процедуры из группы пронумерованных процедур. Группа процедур удаляется полностью.
Рекомендации
Перед удалением хранимой процедуры проверьте зависимые объекты и измените эти объекты соответствующим образом. Удаление хранимой процедуры может вызвать сбой зависимых процедур и скриптов, если эти объекты не обновлены. Дополнительные сведения см. в статье Просмотр зависимостей хранимой процедуры.
Метаданные
Для отображения списка существующих процедур запросите представление каталога sys.objects. Для отображения определения процедуры выполните запрос к представлению каталога sys.sql_modules.
Безопасность
Разрешения
Необходимо разрешение CONTROL для процедуры, разрешение ALTER для схемы, которой принадлежит процедура, либо членство в предопределенной роли сервера db_ddladmin.
Примеры
В следующем примере хранимая процедура dbo.uspMyProc
удаляется из текущей базы данных.
DROP PROCEDURE dbo.uspMyProc;
GO
В следующем примере из текущей базы данных удаляются несколько хранимых процедур.
DROP PROCEDURE dbo.uspGetSalesbyMonth, dbo.uspUpdateSalesQuotes, dbo.uspGetSalesByYear;
В приведенном ниже примере удаляется хранимая процедура dbo.uspMyProc
, если она существует, но если она не существует, ошибка не возникает. Этот синтаксис является новым в SQL Server 2016 (13.x);.
DROP PROCEDURE IF EXISTS dbo.uspMyProc;
GO
См. также:
ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
sys.objects (Transact-SQL)
sys.sql_modules (Transact-SQL)
Удаление хранимой процедуры