• <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 閱讀(941) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

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

            中文版MSDN:
            歡迎體驗

            久久精品成人免费国产片小草| 国产精品久久久香蕉| 国产精品久久精品| 久久久久久久亚洲精品| 国产亚洲美女精品久久久2020| 久久国产精品久久| 97香蕉久久夜色精品国产| 精品久久香蕉国产线看观看亚洲| 免费精品久久久久久中文字幕 | 久久久久综合网久久| 99久久国产亚洲综合精品| 香港aa三级久久三级| 久久综合给久久狠狠97色| 亚洲午夜无码AV毛片久久| 99热热久久这里只有精品68| 久久久久高潮毛片免费全部播放| 欧美精品九九99久久在观看| 亚洲精品高清久久| 99久久免费国产精精品| 色狠狠久久AV五月综合| 亚洲午夜精品久久久久久浪潮 | 久久久久亚洲av成人网人人软件 | 精品久久一区二区| 亚洲AV日韩AV永久无码久久| 亚洲伊人久久成综合人影院 | 伊人久久大香线焦AV综合影院| 精品久久久久久99人妻| 精品久久久久久久久中文字幕| 久久精品国产亚洲AV影院| 香蕉99久久国产综合精品宅男自| 久久精品国产福利国产琪琪| 国内精品伊人久久久久影院对白| 18岁日韩内射颜射午夜久久成人| 2021久久国自产拍精品| 97久久国产亚洲精品超碰热| 国产一区二区三区久久| 日本精品久久久久中文字幕8 | 91视频国产91久久久| 亚洲国产天堂久久综合网站| 久久精品国产一区二区三区| 无码8090精品久久一区 |