Sql Server系列:開發儲存體過程

來源:互聯網
上載者:User

  客戶/伺服器開發的主要目的在於將處理資料的程式移動到離資料儘可能近的地方。通過將處理資料的程式從客戶應用程式移動到伺服器,可以降低網路流量,並提高效能和資料的完整性。

  要將處理資料的程式移動到離資料更近的地方,最常用的方法之一就是開發儲存體過程。

1、管理預存程序

1.1、create、alter和drop

  預存程序是由如下的資料定義語言 (Data Definition Language)命令來管理的:create、alter和drop。

  create用於建立預存程序,它是批處理中的第一個命令,批處理的正常結束就意味著預存程序建立成功。drop命令會從資料庫中刪除預存程序,alter命令會將原有的預存程序替換為新的代碼。如果要修改預存程序,最好採用alter方法,而不要使用先刪除,再重建的方式,因為後一種方法會丟失原來預存程序上所有的使用權限設定。

CREATE PROCEDURE CategoryListAS    SELECT CategoryName FROM Category

1.2、返回記錄集

  預存程序可以返回記錄集。

EXEC CategoryList

1.3、編譯預存程序

  對應預存程序的編譯是自動進行的。在第一次執行預存程序的時候,就會對預存程序進行編譯,並將編譯結果儲存在記憶體中。如果重新啟動了伺服器,所有預存程序的編譯結果就全部丟失。只有當再次調用它們時,才會重新對它們進行編譯。

  SQL Server使用Master.dbo.SysCacheObjects表來記錄編譯過的對象。要查看編譯過的預存程序,可以運行下面的查詢:

SELECT CASE(C.sql AS CHAR(35)) AS StoreProcedure, cacheobjtype,usecounts AS CountFROM Master.dbo.SysCacheObjects CJOIN Master.dbo.SysDatabases DON C.dbid = D.dbidWHERE D.Name = DB_Name()AND ObjType = 'Proc'ORDER BY StoreProcedure

2、向預存程序傳遞資料

  SQL Server預存程序可以使用很多的輸入和輸出參數。

2.1、輸入參數

  如果要使用輸入參數向預存程序傳遞資料,可以在create procedure命令中的預存程序名之後列出需要添加的參數。每個參數都必須以@開始,一旦聲明了輸入參數,它就會成為該預存程序中的局部變數。就像聲明局部變數一樣,必須使用合法的資料類型來定義輸入參數。在調用預存程序時,必須為這些輸入變數提供值(除非該輸入變數具有預設值)。

相關文章

聯繫我們

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