常用存儲(chǔ)過程語法收藏

          一.注釋


          -- 單行注釋,從這到本行結(jié)束為注釋,類似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 --申明一個(gè)名為@ID的變量,類型為int型

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


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



          四.變量賦值


          例如:

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

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

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


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


          以下必要時(shí)候省略變量申明
          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
          將多條語句作為一個(gè)塊,類似與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的語法。



          九.執(zhí)行其他存儲(chǔ)過程 EXEC
          例如

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



          十.事務(wù)

          語法:


          BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]


          例如

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

          十一.游標(biāo)

          我們可以在存儲(chǔ)過程中用Select語句取出每一行數(shù)據(jù)進(jìn)行操作,這就需要用到游標(biāo)。


          語法:
          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) –申明變量
          --申明一個(gè)游標(biāo)
          DECLARE authors_cursor CURSOR FOR  
          SELECT au_id, au_fname FROM authors  
          --打開游標(biāo)
          OPEN authors_cursor
          --取出值
          FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
          --循環(huán)取出游標(biāo)的值
          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 –關(guān)閉游標(biāo)
          DEALLOCATE authors_cursor --釋放游標(biāo)
          我覺得上面的是存儲(chǔ)過程常用的一些東東,如果要更深入的了解,更詳細(xì)的幫助,請參考SQL Server的幫助文檔

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

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 淮滨县| 西宁市| 宝应县| 夏河县| 尼勒克县| 炎陵县| 柏乡县| 三亚市| 霞浦县| 兰坪| 新昌县| 廊坊市| 泌阳县| 曲靖市| 阿拉尔市| 丰县| 东至县| 平和县| 新和县| 连山| 德令哈市| 元朗区| 清原| 綦江县| 会理县| 汶川县| 华容县| 缙云县| 城市| 金阳县| 平潭县| 南投县| 宣恩县| 阿荣旗| 拉萨市| 三河市| 山东省| 上思县| 格尔木市| 闵行区| 济源市|