資源描述:
《SQLSERVER存儲過程大總結.doc》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、SQLSERVER存儲過程使用說明書引言首先介紹一下什么是存儲過程:存儲過程就是將常用的或很復雜的工作,預先用SQL語句寫好并用一個指定的名稱存儲起來,并且這樣的語句是放在數(shù)據(jù)庫中的,還可以根據(jù)條件執(zhí)行不同SQL語句,?那么以后要叫數(shù)據(jù)庫提供與已定義好的存儲過程的功能相同的服務時,只需調(diào)用execute,即可自動完成命令。請大家先看一個小例子:createprocquery_bookasselect*frombookgo--調(diào)用存儲過程execquery_book請大家來了解一下存儲過程的語法?! reate?PROC?
2、[?EDURE?]?procedure_name?[?;?number?]????[?{?@parameter?data_type?}????????[?VARYING?]?[?=?default?]?[?OUTPUT?]????]?[?,...n?] [?WITH????{?RECOMPILE?
3、?ENCRYPTION?
4、?RECOMPILE?,?ENCRYPTION?}?] [?FOR?REPLICATION?] AS?sql_statement?[?...n?]一、參數(shù)簡介 1、 procedure_name
5、 新存儲過程的名稱。過程名必須符合標識符規(guī)則,且對于數(shù)據(jù)庫及其所有者必須唯一?! ∫獎?chuàng)建局部臨時過程,可以在?procedure_name?前面加一個編號符?(#procedure_name),要創(chuàng)建全局臨時過程,可以在?procedure_name?前面加兩個編號符?(##procedure_name)。完整的名稱(包括?#?或?##)不能超過?128?個字符。指定過程所有者的名稱是可選的。 2、;number 是可選的整數(shù),用來對同名的過程分組,以便用一條?Drop?PROCEDURE?語句即可將同組的過程一起除去。
6、例如,名為?orders?的應用程序使用的過程可以命名為?orderproc;1、orderproc;2?等。Drop?PROCEDURE?orderproc?語句將除去整個組。如果名稱中包含定界標識符,則數(shù)字不應包含在標識符中,只應在?procedure_name?前后使用適當?shù)亩ń绶??!?、@parameter 過程中的參數(shù)。在?Create?PROCEDURE?語句中可以聲明一個或多個參數(shù)。用戶必須在執(zhí)行過程時提供每個所聲明參數(shù)的值(除非定義了該參數(shù)的默認值)。存儲過程最多可以有?2100?個參數(shù)?! ∈褂聾符號作
7、為第一個字符來指定參數(shù)名稱。參數(shù)名稱必須符合標識符的規(guī)則。每個過程的參數(shù)僅用于該過程本身;相同的參數(shù)名稱可以用在其它過程中。默認情況下,參數(shù)只能代替常量,而不能用于代替表名、列名或其它數(shù)據(jù)庫對象的名稱。4、data_type 參數(shù)的數(shù)據(jù)類型。所有數(shù)據(jù)類型(包括?text、ntext?和?image)均可以用作存儲過程的參數(shù)。不過,cursor?數(shù)據(jù)類型只能用于?OUTPUT?參數(shù)。如果指定的數(shù)據(jù)類型為?cursor,也必須同時指定?VARYING?和?OUTPUT?關鍵字。 說明:對于可以是cursor?數(shù)據(jù)類型的輸出
8、參數(shù),沒有最大數(shù)目的限制。5、VARYING 指定作為輸出參數(shù)支持的結果集(由存儲過程動態(tài)構造,內(nèi)容可以變化)。僅適用于游標參數(shù)。6、default 參數(shù)的默認值。如果定義了默認值,不必指定該參數(shù)的值即可執(zhí)行過程。默認值必須是常量或?NULL。如果過程將對該參數(shù)使用?LIKE?關鍵字,那么默認值中可以包含通配符(%、_、[]?和?[^])。7、OUTPUT 表明參數(shù)是返回參數(shù)。該選項的值可以返回給?EXEC[UTE]。使用?OUTPUT?參數(shù)可將信息返回給調(diào)用過程。Text、ntext?和?image?參數(shù)可用作?O
9、UTPUT?參數(shù)。使用?OUTPUT?關鍵字的輸出參數(shù)可以是游標占位符。8、n 表示最多可以指定?2100?個參數(shù)的占位符。9、{RECOMPILE?
10、?ENCRYPTION?
11、?RECOMPILE,?ENCRYPTION} RECOMPILE?表明?SQL?Server?不會緩存該過程的計劃,該過程將在運行時重新編譯。在使用非典型值或臨時值而不希望覆蓋緩存在內(nèi)存中的執(zhí)行計劃時,請使用?RECOMPILE?選項?! NCRYPTION?表示?SQL?Server?加密?syscomments?表中包含?Create?
12、PROCEDURE?語句文本的條目。使用?ENCRYPTION?可防止將過程作為?SQL?Server?復制的一部分發(fā)布?! ≌f明:在升級過程中,SQL?Server?利用存儲在?syscomments?中的加密注釋來重新創(chuàng)建加密過程。10、FOR?REPLICATION 指定不能在訂閱服務器上執(zhí)行為