在db2 8.1或者以前的版本中,創建存儲過程需要C編譯器。如果操作系統中沒有C的編譯環境,存儲過程是不能創建的,解決辦法是把DB2升級到8.2.DB2 8.2創建存儲過程將不需要C的編譯環境。
可使用 Transact-SQL 語句 CREATE PROCEDURE 創建存儲過程。創建存儲過程前,請考慮下列事項:
不能將 CREATE PROCEDURE 語句與其它 SQL 語句組合到單個批處理中。
創建存儲過程的權限默認屬於數據庫所有者,該所有者可將此權限授予其他用戶。
存儲過程是數據庫對象,其名稱必須遵守標識符規則。
只能在當前數據庫中創建存儲過程。
創建存儲過程時,應指定:
所有輸入參數和向調用過程或批處理返回的輸出參數。
執行數據庫操作(包括調用其它過程)的編程語句。
返回至調用過程或批處理以表明成功或失敗(以及失敗原因)的狀態值。
系統存儲過程
Microsoft® SQL Server(Windows平台上強大的數據庫平台)™ 2000 中的許多管理活動是通過一種稱為系統存儲過程的特殊過程執行的。系統存儲過程在 master 數據庫中創建並存儲,帶有 sp_ 前綴。可從任何數據庫中執行系統存儲過程,而無需使用 master 數據庫名稱來完全限定該存儲過程的名稱。
強烈建議您不要創建以 sp_ 為前綴的存儲過程。SQL Server(Windows平台上強大的數據庫平台) 始終按照下列順序查找以 sp_ 開頭的存儲過程:
在 master 數據庫中查找存儲過程。
根據所提供的任何限定符(數據庫名稱或所有者)查找該存儲過程。
如果未指定所有者,則使用 dbo 作為所有者查找該存儲過程。
因此,雖然當前數據庫中可能存在帶 sp_ 前綴的用戶創建的存儲過程,但總會先檢查 master 數據庫(即使該存儲過程已用數據庫名稱限定)。
重要 如果用戶創建的存儲過程與系統存儲過程同名,則永遠不執行用戶創建的存儲過程。
分組
如果將一個不同的標識號賦予某過程,則可以用與現有某存儲過程相同的名稱創建該過程,這樣可允許將這些過程進行邏輯分組。同名的分組過程可以同時刪除。在同一應用程序中使用的過程一般都以該方式分組。例如,用於 my_app 應用程序的過程可能被命名為 my_proc;1、my_proc;2 等。刪除 my_proc 即刪除該整個組。將過程分組後,就無法刪除該組內的單個過程。
臨時存儲過程
專用和全局臨時存儲過程與臨時表類似,都可以用向該過程名稱添加 # 和 ## 前綴的方法進行創建。# 表示本地臨時存儲過程,## 表示全局臨時存儲過程。SQL Server(Windows平台上強大的數據庫平台) 關閉後,這些過程將不再存在。
臨時存儲過程在連接到 sql server(Windows平台上強大的數據庫平台) 的早期版本時很有用,這些早期版本不支持再次使用 Transact-SQL 語句或批處理執行計劃。連接到 SQL Server(Windows平台上強大的數據庫平台) 2000 的應用程序應使用 sp_executesql 系統存儲過程,而不使用臨時存儲過程。
只有創建本地臨時過程的連接才能執行該過程,當該連接關閉(用戶從 SQL Server(Windows平台上強大的數據庫平台) 中注銷)時,將自動刪除該過程。
任何連接都可執行全局臨時存儲過程。只有創建該過程的用戶所用的連接關閉,並且所有其它連接所用的該過程的當前執行版本運行完畢後,全局臨時存儲過程才不再存在。一旦用於創建該過程的連接關閉,將不再允許啟動執行該全局臨時存儲過程。只允許那些已啟動執行該存儲過程的連接完成該過程的運行。
如果直接在 tempdb 數據庫中創建沒有 # 或 ## 前綴的存儲過程,則由於每次啟動 sql server(Windows平台上強大的數據庫平台) 時 tempdb 都要重新創建,因此當關閉 SQL Server(Windows平台上強大的數據庫平台) 時將自動刪除該存儲過程。直接在 tempdb 中創建的過程即使在創建該過程的連接終止後也會存在。與任何其它對象一樣,可向其他用戶授予、拒絕和廢除執行該臨時存儲過程的權限。
創建存儲過程
Transact-SQL參考(點擊查看)
企業管理器:
展開服務器組,然後展開服務器。
展開"數據庫"文件夾,再展開要在其中創建過程的數據庫。
右擊"存儲過程",然後單擊"新建存儲過程"命令。
輸入存儲過程的文本。按 TAB 鍵可以縮進存儲過程的文本。按下 CTRL+TAB 鍵或單擊合適的按鈕來退出文本框。
若要檢查語法,單擊"檢查語法"命令。
若要設置權限,單擊"權限"命令。
也可以使用 SQL Server(Windows平台上強大的數據庫平台) 企業管理器的創建存儲過程向導來創建存儲過程。
用創建存儲過程向導創建存儲過程
展開一個服務器組,再展開要在其中創建視圖的服務器。
在"工具"菜單上單擊"向導"命令。
展開"數據庫"文件夾。
雙擊"創建存儲過程向導"命令。
完成向導中的步驟。