적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
SQL Server의 현재 데이터베이스에서 하나 이상의 저장 프로시저나 프로시저 그룹을 제거합니다.
구문
SQL Server, Azure SQL Managed Instance 및 Azure SQL Database에 대한 구문:
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ , ...n ]
Azure Synapse Analytics 및 Microsoft Fabric의 구문:
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }
인수
만약 존재한다면
적용 대상: 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