亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

T-Sql(三)存儲(chǔ)過(guò)程(Procedure)

系統(tǒng) 2171 0
原文: T-Sql(三)存儲(chǔ)過(guò)程(Procedure)

今天講下T-sql語(yǔ)法中存儲(chǔ)過(guò)程的用法,我們一開(kāi)始學(xué)習(xí)數(shù)據(jù)庫(kù)語(yǔ)言的時(shí)候就是用一些簡(jiǎn)單的insert,select等語(yǔ)法,但是隨著我們學(xué)習(xí)數(shù)據(jù)庫(kù)的深入,就會(huì)發(fā)現(xiàn)一些簡(jiǎn)單的語(yǔ)法滿足不了我們的要求,比如處理一些業(yè)務(wù)邏輯,多表關(guān)聯(lián)的時(shí)候,還有就是雖然程序或是簡(jiǎn)單的sql語(yǔ)句也會(huì)實(shí)現(xiàn)其效果,但是性能或是效率會(huì)很低。

  這時(shí)候我們就會(huì)用到T-sql中的存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程就像C#中的方法一樣,傳遞參數(shù),執(zhí)行一些操作,返回相應(yīng)的值。

  我們用SQLSERVER2008自帶的AdventureWorks示例數(shù)據(jù)庫(kù)來(lái)講解。

  首先我們新建一個(gè)存儲(chǔ)過(guò)程,關(guān)鍵字為Procedure,示例代碼: 

      
        create
      
      
        procedure
      
      
         proc_Sales_SalesReason


      
      
        as
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         Sales.SalesReason;


      
      
        end
      
    

我們新建的一個(gè) proc_Sales_SalesReason 存儲(chǔ)過(guò)程,執(zhí)行查詢操作,一般存儲(chǔ)過(guò)程命名為proc_+名稱,這樣有利于識(shí)別。

  執(zhí)行存儲(chǔ)過(guò)程示例代碼:

      
        execute
      
      
         proc_Sales_SalesReason




      
      
        drop
      
      
        procedure
      
        proc_Sales_SalesReason    
      
        --
      
      
        刪除存儲(chǔ)過(guò)程
      
    

修改存儲(chǔ)過(guò)程的話用alter關(guān)鍵字。

  以上只是簡(jiǎn)單的存儲(chǔ)過(guò)程,就想無(wú)參數(shù)的方法一樣,下面是帶參數(shù)的示例代碼:

      
        create
      
      
        procedure
      
      
         proc_Sales_SalesReason

(
      
      
        @SalesReasonID
      
      
        int
      
      
        , 


      
      
        @Name
      
      
        nvarchar
      
      (
      
        50
      
      
        ), 


      
      
        @ReasonType
      
      
        nvarchar
      
      (
      
        50
      
      
        ), 


      
      
        @ModifiedDate
      
      
        datetime
      
      
        )


      
      
        as
      
      
        begin
      
      
        insert
      
      
        into
      
      
         Sales.SalesReason(SalesReasonID, Name, ReasonType, ModifiedDate) 

    
      
      
        values
      
      (
      
        @SalesReasonID
      
      , 
      
        @Name
      
      , 
      
        @ReasonType
      
      , 
      
        @ModifiedDate
      
      
        );


      
      
        end
      
    

這是一個(gè)執(zhí)行插入數(shù)據(jù)的存儲(chǔ)過(guò)程,執(zhí)行示例代碼:

      
        execute
      
       proc_Sales_SalesReason 
      
        100
      
      ,
      
        '
      
      
        text1
      
      
        '
      
      ,
      
        '
      
      
        as
      
      
        '
      
      ,
      
        '
      
      
        2011-12-12
      
      
        '
      
      ;
    

以上講解的都是一些簡(jiǎn)單存儲(chǔ)過(guò)程的用法,在這里只是起到拋磚引玉的作用,大家可以有時(shí)間好好研究下,去處理一些復(fù)雜的業(yè)務(wù)邏輯。

  下面我做了一個(gè)小示例

select :按價(jià)格范圍來(lái)查詢
  要求:如果兩個(gè)參數(shù)均存在,則表示查詢?cè)撝付ǚ秶膬?nèi)容;
  若均不存在,則查詢所有
  若@PriceFrom參數(shù)存在,則,查詢>=@PriceFrom
  @priceTo存在,則<=@priceTo

      
        create
      
      
        procedure
      
      
         proc_SelectProductsWithPriceRange

(

    
      
      
        @PriceFrom
      
      
        money
      
      
        ,

    
      
      
        @priceTo
      
      
        money
      
      
        

)


      
      
        as
      
      
        begin
      
      
        if
      
      
        @PriceFrom
      
      
        is
      
      
        not
      
      
        null
      
      
        begin
      
      
        if
      
      
        @priceTo
      
      
        is
      
      
        not
      
      
        null
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         dbo.Products 

                    
      
      
        where
      
       Price 
      
        between
      
      
        @PriceFrom
      
      
        and
      
      
        @priceTo
      
      
        ;

                
      
      
        end
      
      
        else
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         dbo.Products 

                    
      
      
        where
      
       Price
      
        >=
      
      
        @PriceFrom
      
      
        ;

                
      
      
        end
      
      
        end
      
      
        ;

    
      
      
        else
      
      
        begin
      
      
        if
      
      
        @priceTo
      
      
        is
      
      
        not
      
      
        null
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         dbo.Products 

                    
      
      
        where
      
       Price
      
        <=
      
      
        @priceTo
      
      
        ;

                
      
      
        end
      
      
        else
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         dbo.Products 

                
      
      
        end
      
      
        end
      
      
        end
      
      ;
    

執(zhí)行存儲(chǔ)過(guò)程:

      
        execute
      
       proc_SelectProductsWithPriceRange 
      
        17
      
      ,
      
        null
      
    

其實(shí)這些代碼都是大學(xué)時(shí)候?qū)W習(xí)的時(shí)候整理的,現(xiàn)在寫這些算是去復(fù)習(xí)一下,也想去幫助那些剛剛踏入編程行業(yè)的學(xué)子們(大牛們請(qǐng)飄過(guò)),我想在年前把這兩年整理的一些編程知識(shí)系統(tǒng)的整理下來(lái),當(dāng)然都是一些簡(jiǎn)單的,并附一些示例,希望幫助初學(xué)者去理解,還希望大家關(guān)注一下。。。

?

T-Sql(三)存儲(chǔ)過(guò)程(Procedure)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 黄视频网站免费看 | 91最新免费观看在线 | 女人18毛片a级毛片免费视频 | 一级毛片看一个 | 99九九热 | 亚洲男人的天堂久久香蕉 | 成人免费动作大片黄在线 | 手机看片福利盒子久久青 | 波多野结衣久久精品 | 欧美日韩国产高清一区二区三区 | 精品视频自拍 | 亚洲一级黄色 | 前田香织一区二区中文字幕 | 黄色毛片视频 | 亚洲高清在线观看视频 | 亚洲涩福利高清在线 | 亚洲欧美精品久久 | 中文字幕伊人久久网 | 久久久久久综合一区中文字幕 | 91久久精品国产一区二区 | 日本一区二区三区在线观看 | 天天干在线免费视频 | 一级黄网| 韩国19禁青草福利视频在线 | 四虎免费网站 | 在线播放日本爽快片 | 日本激情啪啪 | 免费在线不卡视频 | 在线免费观看中文字幕 | 国产精品欧美亚洲韩国日本 | 久久久久久久一线毛片 | 五月婷激情| 成人影院观看 | 神马影院伦理我不卡 | 亚洲综合免费 | 久久精彩 | 黄片毛片 | 亚洲国产欧美自拍 | 一级成人毛片免费观看欧美 | 男人搡女人视频免费看 | 婷婷在线成人免费观看搜索 |