SQLSERVER預存程序文法的具體解釋

來源:互聯網
上載者:User

標籤:

SQL SERVER預存程序文法:

Create PROC [ EDURE ] procedure_name [ ; number ]    [ { @parameter data_type }        [ VARYING ] [ = default ] [ OUTPUT ]    ] [ ,...n ]  [ WITH    { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]  [ FOR REPLICATION ]  AS sql_statement [ ...n ]
一、參數簡單介紹
 1、 procedure_name 
  新預存程序的名稱。過程名必須符合標識符規則,且對於資料庫及其全部者必須唯一。
  要建立局部暫時過程,能夠在 procedure_name 前面加一個編號符 (#procedure_name),要建立全域暫時過程。能夠在 procedure_name 前面加兩個編號符 (##procedure_name)。完整的名稱(包含 # 或 ##)不能超過 128 個字元。指定過程全部者的名稱是可選的。
  2、;number
  是可選的整數。用來對同名的過程分組,以便用一條 Drop PROCEDURE 語句就可以將同組的過程一起除去。比如。名為 orders 的應用程式使用的過程能夠命名為 orderproc;1、orderproc;2 等。Drop PROCEDURE orderproc 語句將除去整個組。假設名稱中包括定界標識符,則數字不應包括在標識符中,僅僅應在 procedure_name 前後使用適當的定界符。
  3、@parameter
  過程中的參數。在 Create PROCEDURE 語句中能夠聲明一個或多個參數。

使用者必須在運行過程時提供每一個所聲明參數的值(除非定義了該參數的預設值)。

預存程序最多能夠有 2100 個參數。
  使用@符號作為第一個字元來指定參數名稱。

參數名稱必須符合標識符的規則。每一個過程的參數僅用於該過程本身;同樣的參數名稱能夠用在其他過程中。預設情況下,參數僅僅能取代常量,而不能用於取代表名、列名或其他資料庫物件的名稱。
4、data_type
  參數的資料類型。全部資料類型(包含 text、ntext 和 image)均能夠用作預存程序的參數。只是,cursor 資料類型僅僅能用於 OUTPUT 參數。假設指定的資料類型為 cursor,也必須同一時候指定 VARYING 和 OUTPUT keyword。
  說明:對於能夠是cursor 資料類型的輸出參數。沒有最大數目的限制。
5、VARYING
  指定作為輸出參數支援的結果集(由預存程序動態構造,內容能夠變化)。僅適用於遊標參數。


6、default
  參數的預設值。

假設定義了預設值,不必指定該參數的值就可以運行過程。預設值必須是常量或 NULL。假設過程將對該參數使用 LIKE keyword。那麼預設值中能夠包括萬用字元(%、_、[] 和 [^])。


7、OUTPUT
  表明參數是返回參數。該選項的值能夠返回給 EXEC[UTE]。

使用 OUTPUT 參數可將資訊返回給調用過程。Text、ntext 和 image 參數可用作 OUTPUT 參數。使用 OUTPUT keyword的輸出參數能夠是遊標預留位置。
8、n
  表示最多能夠指定 2100 個參數的預留位置。
9、{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
  RECOMPILE 表明 SQL Server 不會緩衝該過程的計劃,該過程將在執行時又一次編譯。在使用非典型值或暫時值而不希望覆蓋緩衝在記憶體中的執行計畫時,請使用 RECOMPILE 選項。
  ENCRYPTION 表示 SQL Server 加密 syscomments 表中包括 Create PROCEDURE 語句文本的條目。

使用 ENCRYPTION 可防止將過程作為 SQL Server 複製的一部分公布。
  說明:在升級過程中,SQL Server 利用儲存在 syscomments 中的加密凝視來又一次建立加密過程。
10、FOR REPLICATION
  指定不能在訂閱server上運行為複製建立的預存程序。.使用 FOR REPLICATION 選項建立的預存程序可用作預存程序篩選,且僅僅能在複製過程中運行。本選項不能和 WITH RECOMPILE 選項一起使用。
11、AS
  指定過程要啟動並執行操作。
12、sql_statement

  過程中要包括的隨意數目和類型的 Transact-SQL 陳述式。但有一些限制。

13、 n
  是表示此過程能夠包括多條 Transact-SQL 陳述式的預留位置。


14、凝視
  /*和*/之間的為凝視。能夠包括一行和多行的解說文字。
15、 其它說明
  預存程序的最大大小為 128 MB。

二、小註:

        預存程序一般用來完畢資料查詢和資料處理操作,所以在預存程序中不能夠使用建立資料庫物件的語句,即在預存程序中一般不能含有下面語句:

CREATE TABLE ; CREATE VIEW 。 CREATE DEFAULT ;CREATE RULE ;CREATE TRIGGER 。CREATE PROCEDURE



著作權聲明:筆者:jiankunking 資源:http://blog.csdn.net/jiankunking 本文著作權歸作者和CSDN共同擁有。歡迎轉載。但是,如果沒有從本節宣布提交許可權必須保留。並串連到原來的文章頁給出視在位置。

SQLSERVER預存程序文法的具體解釋

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.