DROP PROCEDURE (Transact-SQL)

適用於:Microsoft Fabric 中 Microsoft Fabric倉儲中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure SynapseAnalytics Analytics Platform System (PDW)SQL 分析端點

從 SQL Server 中目前的資料庫移除一個或多個預存程序或程序群組。

Transact-SQL 語法慣例

Syntax

-- 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 }  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

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 預存程序,前提是如果它存在但不會因為程序不存在而造成錯誤。 此語法是 2016 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)
刪除預存程序