常用存儲過程語法收藏

          一.注釋


          -- 單行注釋,從這到本行結束為注釋,類似C++,c#中//
          /* … */ 多行注釋,類似C++,C#中/* … */





          二.變量(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar。。。。。。)
          語法:
          DECLARE  
          {
          {@local_variable data_type}
          } [,...n]
          例如:


          declare @ID int --申明一個名為@ID的變量,類型為int型

          三.在SQL Server窗口中打印出變量的值


          語法:
          PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr



          四.變量賦值


          例如:

          --從數據表中取出第一行數據的ID,賦值給變量@id,然后打印出來
          Declare @ID int
          Set @ID = (select top(1) categoryID from categories)
          Print @ID

          在SQL中,我們不能像代碼那樣直接給變量賦值,例如@id = 1,如果要達到這樣的功能,可以這樣寫:

          Declare @ID int
          Set @ID = (select 1) -- 類似 @ID=1
          Select @id=1 -- 類似 @ID=1
          Print @ID


          五.變量運算(+,-,*,/,……)


          以下必要時候省略變量申明
          Set @ID = (select 1+5) --類似 @ID=1+5
          Set @ID=(select 1-@ID) --類似 @ID=1-@ID

          六.比較操作符
          • > (greater than).  
          • < (less than).  
          • = (equals).  
          • <= (less than or equal to).  
          • >= (greater than or equal to).  
          • != (not equal to).  
          • <> (not equal to).  
          • !< (not less than).  
          • !> (not greater than).  
          沒什么說的




          七.語句塊:Begin … end
          將多條語句作為一個塊,類似與C++,C#中的{ }
          例如:
          Begin
          Set @ID1 = (select 1)
          Set @ID2 = (select 2)
          End

          八.If, if…else…
          語法:
          IF Boolean_expression
          {sql_statement | statement_block}
          [ELSE
          {sql_statement | statement_block}]
          例如:

          If @id is not null
          Print ‘@id is not null
          if @ID = 1
          begin
          Set @ID = (select 1 + 1)
          end
          else
          begin  
          set @ID=(select 1+2)
          end


          上面的例子用到了比較操作符,語句塊,和IF的語法。



          九.執行其他存儲過程 EXEC
          例如

          EXEC dbo.[Sales by Year] @Beginning_Date=’1/01/90’, @Ending_Date=’1/01/08’



          十.事務

          語法:


          BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]


          例如

          BEGIN TRAN
          -- 做某些操作,例如Insert into …
          if @@error <> 0
          BEGIN
          ROLLBACK TRAN
          END
          else
          BEGIN
          COMMIT TRAN
          END

          十一.游標

          我們可以在存儲過程中用Select語句取出每一行數據進行操作,這就需要用到游標。


          語法:
          DECLARE cursor_name CURSOR
          [LOCAL | GLOBAL]
          [FORWARD_ONLY | SCROLL]
          [STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
          [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
          [TYPE_WARNING]
          FOR select_statement

          [FOR UPDATE [OF column_name [,...n]]]




          例如:

          DECLARE @au_id varchar(11), @au_fname varchar(20) –申明變量
          --申明一個游標
          DECLARE authors_cursor CURSOR FOR  
          SELECT au_id, au_fname FROM authors  
          --打開游標
          OPEN authors_cursor
          --取出值
          FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
          --循環取出游標的值
          WHILE @@FETCH_STATUS = 0
          BEGIN
          Print @au_id
          Print @au_fname
          Print ‘ ’
          FETCH NEXT FROM authors_cursor  
          INTO @au_id, @au_fname
          END
          CLOSE authors_cursor –關閉游標
          DEALLOCATE authors_cursor --釋放游標
          我覺得上面的是存儲過程常用的一些東東,如果要更深入的了解,更詳細的幫助,請參考SQL Server的幫助文檔

          posted on 2011-07-18 17:35 七孑 閱讀(236) 評論(0)  編輯  收藏 所屬分類: SQL相關

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 司法| 永平县| 荔浦县| 蓬安县| 奇台县| 蛟河市| 息烽县| 浑源县| 南召县| 高碑店市| 崇仁县| 绵阳市| 比如县| 城步| 拜泉县| 万荣县| 疏附县| 兴安盟| 手机| 特克斯县| 永德县| 枣阳市| 镇江市| 海兴县| 林周县| 云浮市| 大名县| 高陵县| 阳东县| 台北县| 通山县| 视频| 林州市| 牟定县| 高阳县| 武陟县| 张掖市| 石景山区| 江永县| 边坝县| 子洲县|