您可以将其添加到过程脚本的顶部。 (只需将 ownerName 和 ProcName 替换为实际值即可。
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[OwnerName].[ProcName]') AND type in (N'P', N'PC'))
DROP PROCEDURE [OwnerName].[ProcName]
GO
您也可以写ALTER PROC,但如果您将工作保存为脚本以便稍后部署到可能没有该过程的数据库中,这可能是个问题
顺便说一句,您始终可以通过右键单击现有过程并选择 Script Stored Procedure as -> DROP and CREATE to -> ... 让 SQL Server 为您生成此文件
您也可以使用模板资源管理器 Ctrl+Alt+T 并使用 Drop Stored Procedure 模板(以下是默认模板),然后使用 Query -> Specify Values for Template Parameters
-- =======================================================
-- Drop Stored Procedure
-- =======================================================
-- Drop stored procedure if it already exists
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = N'<Schema_Name, sysname, Schema_Name>'
AND SPECIFIC_NAME = N'<Procedure_Name, sysname, Procedure_Name>'
)
DROP PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
GO