SQL Server中對預存程序的理解

來源:互聯網
上載者:User

標籤:tab   server   更新   proc   int   注意   com   行儲存   end   

  資料庫的預存程序理解為,處理資料的子程式,寫起來像函數,用起來像函數,在SQL Server中預存程序分為兩大類,系統的和自訂的,系統的都放在master系統資料庫中,自訂就是自己去寫的,用DDL的相關語句即可,建立預存程序,就像函數一樣,可以有參,也可以無參,無參的時候寫起來很簡單:

CREATE PROC helloAS    BEGIN        /*....*/    ENDGO

執行的時候也是,只需要在自訂預存程序執行即可

EXEC hello

有參的時候寫法也不陌生:

CREATE PROC hello_1 @n1 intAS    BEGIN        //.....    ENDGOEXEC hello_1 ‘123‘/*或者 EXEC hello_1 @n2=‘123‘*/

 

在執行的時候如果是批處理的第一條語句則可以將EXEC省略

在編寫的時候,會有許多不同的需求,預存程序時沒有傳回值的,我們需要返回相關資訊的時候就希望類似於C/C++一樣傳入指標或者引用,在SQL Server中實現的方式是在變數之後加上OUTPUT。

對參數進行修飾的屬性還有很多:

VARYING 只適用於輸出參數為Cursor變數,該參數由預存程序動態構造
參數=值 表示預設值
READONLY 修飾不能在預存程序中更新或者修改的參數,類似於C/C++的const
RECOMPILE  執行預存程序時重新編譯

注意事項:

  自訂預存程序只能在當前資料庫中建立,暫存預存程序除外,暫存預存程序在系統資料庫tempdb建立

  預存程序建立成功之後,過程名在sysobjects中,語句文本存放在syscomment中

  自動執行預存程序是SQL Server在啟動過程中自動執行的一些預存程序,這些預存程序都不能有參數的。

SQL Server中對預存程序的理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.