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


Удаление хранимой процедуры

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

В этой статье описывается удаление хранимой процедуры в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

ограничения и ограничения

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

Разрешения

Необходимо разрешение ALTER на схему, которой принадлежит процедура, или разрешение CONTROL на процедуру.

Использование SQL Server Management Studio

  1. В Обозревателе объектов подключитесь к экземпляру СУБД, а затем разверните этот экземпляр.

  2. Последовательно разверните узел Базы данных, затем ту базу данных, к которой принадлежит процедура, и узел Программируемость.

  3. Разверните хранимые процедуры, щелкните правой кнопкой мыши процедуру, чтобы удалить, и нажмите кнопку "Удалить".

  4. Чтобы просмотреть объекты, зависящие от процедуры, выберите " Показать зависимости".

  5. Убедитесь, что выбрана правильная процедура, а затем нажмите кнопку "ОК".

  6. Удалите ссылки на процедуру из зависимых объектов и скриптов.

Использование Transact-SQL

  1. В Обозреватель объектов подключитесь к экземпляру СУБД, а затем разверните этот экземпляр.

  2. Разверните Базы данных, разверните базу данных, к которой относится процедура, или с помощью панели инструментов выберите базу данных из списка доступных.

  3. В меню "Файл" выберите "Создать запрос".

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

    SELECT name AS procedure_name
        , SCHEMA_NAME(schema_id) AS schema_name
        , type_desc
        , create_date
        , modify_date
    FROM sys.procedures;
    
  5. Скопируйте и вставьте следующий пример в редактор запросов и введите имя хранимой процедуры, которую нужно удалить из текущей базы данных.

    DROP PROCEDURE [<stored procedure name>];
    GO
    
  6. Удалите ссылки на процедуру из зависимых объектов и скриптов.

См. также