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

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

            中文版MSDN:
            歡迎體驗

            色综合久久天天综线观看| 久久久久人妻一区精品色| 国产精品久久久久AV福利动漫| 国产美女亚洲精品久久久综合| 无遮挡粉嫩小泬久久久久久久 | 久久黄色视频| 国产精品九九久久免费视频 | 国产三级精品久久| 亚洲精品国精品久久99热| 久久综合久久自在自线精品自 | 欧美一区二区三区久久综| 超级碰久久免费公开视频| 久久久久免费精品国产| 久久精品视频网| A狠狠久久蜜臀婷色中文网| 国产视频久久| 99久久国产综合精品麻豆| 亚洲性久久久影院| 国产精品美女久久久久av爽| 日本久久久久亚洲中字幕| 日韩影院久久| 久久久久久青草大香综合精品| 亚洲综合伊人久久大杳蕉| 色99久久久久高潮综合影院| 国产情侣久久久久aⅴ免费| 久久夜色精品国产亚洲| 日韩久久无码免费毛片软件| 亚洲国产二区三区久久| 精品久久久久香蕉网| 色综合久久久久无码专区 | 久久精品国产日本波多野结衣| 九九热久久免费视频| 久久中文娱乐网| 国产精品视频久久| 91精品国产色综合久久| 国产精品无码久久久久久| 久久精品国产久精国产一老狼| 亚洲?V乱码久久精品蜜桃| 狠狠色综合网站久久久久久久| 久久99精品久久久久久久不卡| 久久精品无码午夜福利理论片 |