<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 數據庫 > T-SQL >
        • sql語句大全之MSSQL sql存儲過程創建簡介及應用舉

        本站最新發布    SQL Server 2016數據庫視頻教程
        試聽地址  
        http://www.squ68.com/eschool/SQLxin3721/

        MSSQL存儲過程簡介


        存儲過程的概念:我們將一組常用、經常重復使用的sql,采用一個包名進行定義,并將其放入數據庫中,作為DB服務器中的一個對象,對外服務,我們將此包稱之為”存儲過程”。

        存儲過程的優點:
        1 存儲過程作為服務器對象,所以運行存儲過程中的sql塊,通常比sql塊速度更快,效率更高。
        2 存儲過程將sql塊存儲在數據庫對象中,減少了客戶端同服務器端通信的數據塊大小,減輕網絡瀏覽。
        3 存儲過程將sql塊封裝為一個包,增加了sql代碼的可讀性和sql代碼調試的便利性。
        4 存儲過程作為db服務器中的一個對象,我們可以通過相應的權限設置,來限制客戶端操作數據庫的權限,增加db服務器的安全性。



        存儲過程的缺點:
        1 存儲過程作為db服務器對象,在后臺進行大量的運算,加大了DB服務器的壓力。
        2 存儲過程作為db服務器對象,里面包含了不同類型的sql語法,所以存儲過程不方便不同類型數據庫的移植操作。
        3 對應用系統而言,由于業務邏輯存在程序代碼和存儲過程中,所以加大了應用程序的維護難度。

         



        存儲過程的應用場景:
        1 數據庫倉庫抽取數據
        2 超大型報表獲取獲取
        3 超復雜的sql業務邏輯代碼編寫

        MSSQL存儲過程舉例應用

         


        mssql 存儲過程語法:

        create proc 存儲過程名稱 
        參數名1 參數類型 [參數默認值] [是否為輸出參數],
        參數名2 參數類型 [參數默認值] [是否為輸出參數]
        ...
         [with {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
        as 
        /*sql 代碼塊*/
        
        存儲過程名稱最大長度不能超過256個字符
        with recompile:代表每次調用存儲過程,db服務器都為對存儲過程進行重編譯,清除buffer pool中的緩存信息
        with ENCRYPTION:加密存儲過程
        with recompile, ENCRYPTION:重編譯存儲過程和加密存儲過程
        
        
        
          create table A (keyId int)
          insert into A(keyId)values(1),(10),(100),(1000),(10000),(100000),(100000),(2)
            
          /*創建存儲過程*/
           /*創建存儲過程查詢數據表數據*/
           create proc pr_showTableAInfo
           as
           begin
           select keyId from  A 
           end 
           go 
           /*執行存儲過程*/
           exec  pr_showTableAInfo 
           go
           
           /*創建存儲過程返回多張數據表數據*/
           create proc pr_showTableAInfo
           as
           begin
           select keyId from  A 
           select '這是第二張數據表' as table 
           end 
           go 
           /*執行存儲過程*/
           exec  pr_showTableAInfo 
           go 
           


        /*創建帶輸出參數的存儲過程*/
        create proc pr_t
        @a int,
        @b varchar(36) output
        as
        begin
        set @b=NEWID() ----對output參數賦值
        select 'test',@b as t ---返回數據表
        end
        go
        /*調用帶output參數的存儲過程方法*/
        declare @t2 varchar(36)
        exec pr_t 1,@t2 output ----設置調用參數屬性為output,存儲過程中的數值,則會傳送至外部變量中
        select @t2 as [backValue]
        go


        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看