DROP PROCEDURE (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

Удаляет одну или несколько хранимых процедур или групп процедур из текущей базы данных в 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 and Microsoft Fabric
  
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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)
Удаление хранимой процедуры