DROP PROCEDURE (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
從 SQL Server 中目前的資料庫移除一個或多個預存程序或程序群組。
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 }
引數
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