共用方式為


DROP PROCEDURE (Transact-SQL)

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

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

Transact-SQL 語法慣例

Syntax

SQL Server、Azure SQL 受控執行個體 和 Azure SQL 資料庫 的語法:

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

Azure Synapse Analytics、Analytics Platform System (PDW) 和 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 受控執行個體 和 Azure SQL 資料庫

只有當程序已經存在時,才會有條件地將它卸除。

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