• <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| 日本久久久久亚洲中字幕| 亚洲精品乱码久久久久久久久久久久| 久久久久久亚洲精品影院| 国产精品久久久久久福利漫画| 国产精品欧美亚洲韩国日本久久 | 狠狠精品久久久无码中文字幕| 无码人妻少妇久久中文字幕| 热re99久久6国产精品免费| www亚洲欲色成人久久精品| 久久婷婷五月综合97色直播| 97久久久久人妻精品专区| 午夜精品久久影院蜜桃| 狠狠色丁香久久综合五月| 久久午夜免费视频| 亚洲国产精久久久久久久| 国产亚洲精品久久久久秋霞| 国产精品热久久无码av| 久久综合香蕉国产蜜臀AV| 亚洲午夜精品久久久久久app| 99国产欧美精品久久久蜜芽| 麻豆av久久av盛宴av| 人妻无码精品久久亚瑟影视| 久久国产高清字幕中文| 精品久久久无码人妻中文字幕| 久久国产高清一区二区三区| 久久综合中文字幕| 久久777国产线看观看精品| 天天躁日日躁狠狠久久| 久久人做人爽一区二区三区| 久久亚洲AV永久无码精品| 久久九九久精品国产免费直播| 麻豆精品久久精品色综合| 久久最近最新中文字幕大全| 久久精品国产一区二区三区日韩| 久久久精品人妻一区二区三区蜜桃 | 久久精品夜色噜噜亚洲A∨| 一本大道加勒比久久综合| 91精品国产高清久久久久久国产嫩草 | 久久久99精品一区二区|