다음을 통해 공유


DROP PROCEDURE(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

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 }

인수

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