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

T-Sql(三)存儲過程(Procedure)

系統 1834 0
原文: T-Sql(三)存儲過程(Procedure)

今天講下T-sql語法中存儲過程的用法,我們一開始學習數據庫語言的時候就是用一些簡單的insert,select等語法,但是隨著我們學習數據庫的深入,就會發現一些簡單的語法滿足不了我們的要求,比如處理一些業務邏輯,多表關聯的時候,還有就是雖然程序或是簡單的sql語句也會實現其效果,但是性能或是效率會很低。

  這時候我們就會用到T-sql中的存儲過程,存儲過程就像C#中的方法一樣,傳遞參數,執行一些操作,返回相應的值。

  我們用SQLSERVER2008自帶的AdventureWorks示例數據庫來講解。

  首先我們新建一個存儲過程,關鍵字為Procedure,示例代碼: 

      
        create
      
      
        procedure
      
      
         proc_Sales_SalesReason


      
      
        as
      
      
        begin
      
      
        select
      
      
        *
      
      
        from
      
      
         Sales.SalesReason;


      
      
        end
      
    

我們新建的一個 proc_Sales_SalesReason 存儲過程,執行查詢操作,一般存儲過程命名為proc_+名稱,這樣有利于識別。

  執行存儲過程示例代碼:

      
        execute
      
      
         proc_Sales_SalesReason




      
      
        drop
      
      
        procedure
      
        proc_Sales_SalesReason    
      
        --
      
      
        刪除存儲過程
      
    

修改存儲過程的話用alter關鍵字。

  以上只是簡單的存儲過程,就想無參數的方法一樣,下面是帶參數的示例代碼:

      
        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
      
    

這是一個執行插入數據的存儲過程,執行示例代碼:

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

以上講解的都是一些簡單存儲過程的用法,在這里只是起到拋磚引玉的作用,大家可以有時間好好研究下,去處理一些復雜的業務邏輯。

  下面我做了一個小示例

select :按價格范圍來查詢
  要求:如果兩個參數均存在,則表示查詢該指定范圍的內容;
  若均不存在,則查詢所有
  若@PriceFrom參數存在,則,查詢>=@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
      
      ;
    

執行存儲過程:

      
        execute
      
       proc_SelectProductsWithPriceRange 
      
        17
      
      ,
      
        null
      
    

其實這些代碼都是大學時候學習的時候整理的,現在寫這些算是去復習一下,也想去幫助那些剛剛踏入編程行業的學子們(大牛們請飄過),我想在年前把這兩年整理的一些編程知識系統的整理下來,當然都是一些簡單的,并附一些示例,希望幫助初學者去理解,還希望大家關注一下。。。

?

T-Sql(三)存儲過程(Procedure)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 奇米第四色在线观看 | 男人影院在线观看 | 香蕉tv亚洲专区在线观看 | 日韩 亚洲 欧美 中文 高清 | 淫欲网| 精品国产不卡一区二区三区 | 天天撸天天操 | 青青青国产手机免费视频 | 国产精品一久久香蕉产线看 | 四虎成人www国产精品 | 国产成人精品免费影视大全 | 欧美日韩高清 | 五月天亚洲视频 | 国产国产精品人在线视 | 欧美日本三级 | 久久亚洲伊人 | 亚洲欧美乱综合图片区小说区 | 亚洲免费成人在线 | 久久三级视频 | 九九爱精品视频 | 欧美精品一区二区精品久久 | 99综合之综合久久伊人 | 久久婷婷五色综合夜啪 | 色综合久久久久久久久五月 | 精品视频在线免费观看 | 亚洲精品久久精品h成人 | 香蕉国产人午夜视频在线观看 | 亚洲一级在线 | 久久久久久88色愉愉 | 毛片网站在线观看 | 97久久国产一区二区三区四区 | 日韩一区二区精品久久高清 | 国产视频www| 欧美一级日本一级韩国一级 | 日日摸夜夜添夜夜添人人爽 | 欧洲美女啪啪 | 成人精品视频 | 大陆老太xxxxxxxxhd | 亚洲精品人成无码中文毛片 | 十八毛片 | 91精品国产欧美一区二区 |