我們可以使用ALTER PROCEDURE 語句修改已經存在的存儲過程。
可以使用DROP PROCEDURE 語句刪除那些不需要的存儲過程。
1、修改存儲過程
語法如下:
ALTER PROCEDURE ?存儲過程名
@參數名 ? 數據類型 ? ?(output)
AS
? ? SQL語句
GO
在使用ALTER PROCEDURE語句時,考慮以下幾方面的事項:
(1)如果要修改具有任何選項的存儲過程,例如WITH ENCRYPTION選項,必須在ALTER PROCEDURE語句中包括該選項以保留該選項提供的功能。
(2)ALTER PROCEDURE語句只能修改一個單一的過程,如果過程調用其他存儲過程,嵌套的粗糙你過程不受影響。
(3)在默認狀態下,允許該語句的執行者是存儲過程最初的創建者,sysadmin服務器角色成員和db_owner與db_ddladmin固定的數據庫角色成員,用戶不能授權執行ALTER PROCEDURE語句。
不過,建議不要直接修改系統存儲過程,相反,可以通過從現有的存儲過程中復制語句來創建用戶定義的系統存儲過程,然后修改它以滿足要求。
2、刪除存儲過程
語法如下:
DROP PROC ?存儲過程名
如果另一個存儲過程調用某個已被刪除的存儲過程,SQL Server 2008將在執行調用進程時顯示一條錯誤信息。但是,如果定義了具有相同名稱和參數的新存儲過程來替換已被刪除的存儲過程,那么引用該過程的其他過程仍能成功執行。
例如:如果存儲過程pro1引用存儲過程pro2,而pro2已被刪除,但又創建了另一個名為pro2的存儲過程,現在pro1將引用這一新存儲過程。pro1也不必重新創建。
注意:在刪除存儲過程之前,先執行sp_depends存儲過程來確定是否有對象依賴于此存儲過程。