• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

            Blog @ Blog

            當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

            常用鏈接

            統計

            積分與排名

            BBS

            Blog

            Web

            最新評論

            SQLSERVER存儲過程基礎

            1.聲明變量
            DECLARE @F001 SMALLINT,
               
                      @F002 INTEGER,
               
                      @F003 VARCHAR(20),
                         
            @F004 CHAR(20),
               
                      @F002 MONEY

            2.賦值語句
            set @F001 = space(40)

            3.條件判斷(IF...ELSE)
            If condition Begin
                
            [ statements  ]
            END
            ELSE BEGIN
                
            [ elseifstatements ]
            END

            4.多分支判斷(case...when...then...else...end)
            SET @F011 =
            CASE
                   
            WHEN [testexpression1] THEN  @F001
                   
            WHEN [testexpression2] THEN  @F002
                   
            WHEN [testexpression3] THEN  @F003
                   
            WHEN [testexpression4] THEN  @F004
            END

            5.循環(while)
            While condition Begin
               
            [ statements ]
            End

            6.動態定義游標
            SET @strSQL = ' DECLARE  name_cursor  CURSOR  FOR  ' + @inSQL
            EXEC  (@strSQL)

            7.遍歷游標
            FETCH NEXT FROM name_cursor into @F001,@F002
            WHILE  @@FETCH_STATUS = 0 BEGIN

                   
            FETCH NEXT FROM name_cursor into @F001,@F002

            END
            說明:FETCH_STATUS檢索到數據返回0,失敗返回-1,可判斷是否滾動未到結尾。

            8.獲得游標行數
            SET @RECCNT = @@ROWCOUNT

            9.事務處理
            BEGIN distributed transaction

            WHILE @@TRANCOUNT > 0
                   
            commit transaction

            10.字符串連接
            SET @m_sql = @m_sql + ' Where F001 = ''' + @F001 + ''''
            SET @m_sql = @m_sql + ' F002 = ' + CONVERT(varchar,@F002)

            11.創建臨時表存儲外部數據表
            說明:臨時過程用 # 和 ## 命名,可以由任何用戶創建。創建過程后,局部過程的所有者是唯一可以使用該過程的用戶。
            CREATE TABLE #DMPARHED
            (FMCD   
            int,
            FMNAM  
            varchar(50),
            MGYO1  
            smallint,
            constraint DMPARHED_P primary key (FMCD))
            SET @aSQL = ''
            SET @aSQL = @aSQL + 'INSERT INTO #DMPARHED'
            SET @aSQL = @aSQL + ' SELECT FMCD,FMNAM,MGYO1 FROM'
            SET @aSQL = @aSQL + ' OPENQUERY(Lk_MDB_NEO32, ''SELECT FMCD,FMNAM,MGYO1 FROM DMPARHED'
            SET @aSQL = @aSQL + ' WHERE SYSNO = 1'')'
            execute(@aSQL)

            創建臨時表的另類方法:
            select a.name,a.password from
            with
            as temp1
            select * from emp
            (
            select * from temp1
            union
            select * from temp1) a
            where a.name='hao'

            12.存儲過程的調用及返回值
            (1)存儲過程的聲明
            CREATE PROCEDURE name_produce
                
            @F001  VARCHAR(20),
                       
            @F002  SMALLINT OUTPUT
            (2)VB.NET調用存儲過程
            Private SqlCmd As New OleDb.OleDbCommand

            SqlCmd.CommandText 
            = "prNK3020SC03"
            SqlCmd.CommandType 
            = CommandType.StoredProcedure

            Dim parampre1 As OleDb.OleDbParameter = SqlCmd.Parameters.Add( _
                     
            New OleDb.OleDbParameter("@F001", OleDb.OleDbType.VarChar, 20, _
                     ParameterDirection.Input))
            Dim parampre2 As OleDb.OleDbParameter = SqlCmd.Parameters.Add( _
                    
            New OleDb.OleDbParameter("@F002", OleDb.OleDbType.SmallInt))
            parampre2.Direction 
            = ParameterDirection.Output

            SqlCmd.Parameters(
            "@F001").Value = aF001
            SqlCmd.Parameters(
            "@F002").Value = aF002
            SqlCmd.ExecuteNonQuery()
            aF002 
            = SqlCmd.Parameters("@F002").Value.ToString()
            (3)存儲過程調用存儲過程
            DECLARE @C001       VARCHAR(20),
                         
            @C002       SMALLINT
            EXEC name_produce @C001,@C002 output

            CREATE PROCEDURE dbo.getUserName
            @UserID int,
            @UserName varchar(40) output
            as
            set nocount on
            begin
            if @UserID is null return
            select @UserName=username
            from dbo.[userinfo]
            where userid=@UserID
            return
            end

            13.Update語句常見錯誤總結
            --
            Update name_table set
                   F001 
            = @F181,
                   F002 
            = @F182
            Where
                   F003 
            = @F003
            --×
            Update name_table
                   F001 
            = @F181,
                   F002 
            = @F182
            Where
                   F003 
            = @F003
            --×
            Update name_table set
                   F001 
            = @F181,
                   F002 
            = @F182,
            Where
                   F003 
            = @F003
            --×
            Update name_table set
                   ,F001 
            = @F181
                   ,F002 
            = @F182
            Where
                   F003 
            = @F003

            14.Insert語句常見語法錯誤總結
            --
            INSERT INTO name_table(
            ,KEY_FIELD,BUSYOCD
            )
            Values(
            @F001,@F002
            )
            --×
            INSERT INTO name_table(
            F001,F002
            )
            Values(
            ,
            @F001,@F002
            )
            --×
            INSERT INTO name_table(
            F001,F002
            )
            Values(
            @F001,@F002,
            )
            --×
            INSERT  name_table(
            F001,F002
            )
            Values(
            @F001,@F002
            )

            posted on 2008-06-19 09:14 isabc 閱讀(936) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

            廣告信息(免費廣告聯系)

            中文版MSDN:
            歡迎體驗

            一本大道加勒比久久综合| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久中文精品无码中文字幕| 久久精品国产亚洲一区二区三区 | 青青热久久国产久精品| 久久人妻无码中文字幕| 久久香蕉国产线看观看99| 久久久久99这里有精品10| 99久久精品国产高清一区二区 | 久久99精品久久久久久久久久| 婷婷久久综合九色综合98| 亚洲人成无码www久久久| 久久99国产综合精品| 久久久久久久免费视频| 久久精品女人天堂AV麻| 久久国产一区二区| 亚洲国产精品无码久久久不卡| 久久久久香蕉视频| 国产成人精品久久亚洲高清不卡 | 久久中文字幕视频、最近更新 | A狠狠久久蜜臀婷色中文网| 久久99热这里只有精品66| 狠狠色综合久久久久尤物| www久久久天天com| 色综合久久无码中文字幕| 香蕉aa三级久久毛片| 日韩久久久久中文字幕人妻 | 久久发布国产伦子伦精品| 一个色综合久久| 婷婷久久综合九色综合绿巨人| 国产精品久久久久久久久久免费| 91精品国产色综合久久| 国产成人精品白浆久久69| 久久水蜜桃亚洲av无码精品麻豆| 久久婷婷五月综合国产尤物app| 女人高潮久久久叫人喷水| 一级做a爰片久久毛片看看| 国产欧美久久久精品影院| 亚洲中文精品久久久久久不卡| 77777亚洲午夜久久多喷| 日本人妻丰满熟妇久久久久久|