My SQL Server存儲過程創建及調用 存儲過程優點: ① 執行速度快 ② 模板化程序設計 ③ 減少網絡流量 ④提供系統安全性 .什麼是存儲過程 存儲過程(stored procdures)是Sql查詢語句與控制流語句的預編譯集合,並以特定的名稱保存在數據庫中。且分為自定義存儲過程與系統存儲過程 ·系統存儲過程 →系統存儲過程命名以“sp_”開頭和“xp_”開頭。在master數據庫中 →擴展存儲過程:xp_cmdshell ,可以調用DOS命令 用法如下: exec xp_cmdshell Dos命令 [no_output] →execute 用來調用存儲過程,也可縮寫為exec 語法: execute '存儲過程名' '參數' --如果沒有參數則省略參數 ·用戶自定義存儲過程 語法: create procedure 存儲過程名 @參數1名 數據類型[ = 默認值][參數類型(輸入/輸出)] ... @參數n名 數據類型[ = 默認值][參數類型(輸入/輸出)] as sql語句 ... go *注意:參數類型分為輸入與輸出參數,默認為輸入參數,使用output表示輸出,創建存儲過程最好以 proc 開頭。 ①創建不帶參數的存儲過程 例: 查詢所有空閒的電腦信息 --判斷存儲過程是否存在 if exists(select * from sysobjects where[name]='proc_GetPc') drop procedure proc_GetPc go --創建不帶參數的存儲過程 create procedure proc_GetPc --沒有參數 as select pcId as '電腦編號', '電腦使用狀態'=case when PcUse=0 then '空閒' when PcUse=1 then '空閒' PcNote as '備注' from PcInfo where PcUse=0 go --調用存儲過程 execute proc_GetPc ②創建帶輸入參數的存儲過程 語法: create procedure 存儲過程名 @參數1名 數據類型[= 默認值] ... @參數N名 數據類型[= 默認值] as SQL語句 ... go ③創建帶輸出參數的存儲過程 與C語言的返回值類似,執行存儲過程後,一可以返回值。但與C語言只能返回一個值不同,存儲過程可以返回一個或多個值。這就需要我們定義並接收輸出(output)參數。 ④return的使用 return 關鍵字終止存儲過程的執行或返回數據。類似C語言函數中的return。 return 只能返回int 類型,output 返回任意類型。 ·處理錯誤信息 SQL Server中使用raiserror返回用戶自定義的錯誤信息。 語法: RAISERROR(自定義的錯誤信息,錯誤的嚴重級別,錯誤的狀態) →自定義錯誤信息:表示輸出的錯誤提示文本。 →錯誤的嚴重級別:表示用戶自定義錯誤的嚴重級性級別。 →錯誤的狀態:表示自定義錯誤的狀態,值的范圍在1-127。 .存儲過程是數據庫對象,可以使用 DROP PROCEDURE語句刪除存儲過程。