您可以將其添加到過程腳本的頂部。 (只是與真實值替換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
,但如果你保存工作作爲腳本稍後部署到數據庫,這可能是一個問題,可能沒有程序
順便說一句,你總是可以有SQL服務器通過在現有的程序右擊選擇Script Stored Procedure as -> DROP and CREATE to -> ...
您也可以使用模板資源管理器按Ctrl + Alt + T並生成該爲你使用Drop Stor編程序模板(下面是默認值),然後使用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
爲什麼在編寫存儲過程時不要使用['ALTER PROCEDURE'](http://msdn.microsoft.com/en-us/library/ms189762.aspx)語法? – Justin 2012-02-24 17:13:19