DROP PROCEDURE (Transact-SQL)
適用於:Microsoft Fabric 中 Microsoft Fabric倉儲中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure SynapseAnalytics Analytics Platform System (PDW)SQL 分析端點
從 SQL Server 中目前的資料庫移除一個或多個預存程序或程序群組。
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)
刪除預存程序
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應