DROP PROCEDURE (Transact-SQL)

Область применения:yesSQL Server (все поддерживаемые версии) YesБаза данных SQL Azure YesУправляемый экземпляр SQL Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

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

Topic link iconСинтаксические обозначения в 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)
Удаление хранимой процедуры