다음을 통해 공유


DROP PROCEDURE(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 Warehouse

SQL Server의 현재 데이터베이스에서 하나 이상의 저장 프로시저나 프로시저 그룹을 제거합니다.

Transact-SQL 구문 표기 규칙

구문

SQL Server, Azure SQL Managed Instance 및 Azure SQL Database에 대한 구문:

DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ , ...n ]

Azure Synapse Analytics, PDW(Analytics Platform System) 및 Microsoft Fabric에 대한 구문:

DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }

참고 항목

SQL Server 2014(12.x) 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

IF EXISTS

적용 대상: SQL Server 2016(13.x) 이상 버전, Azure SQL Managed Instance 및 Azure SQL Database

이미 있는 경우에만 프로시저를 조건부로 삭제합니다.

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