• <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:
            歡迎體驗

            狠狠色婷婷综合天天久久丁香 | 漂亮人妻被中出中文字幕久久 | 久久WWW免费人成—看片| 激情五月综合综合久久69| 久久久久亚洲AV无码去区首| 久久精品中文无码资源站| 热久久这里只有精品| 欧美黑人激情性久久| 青青草原综合久久大伊人精品| 国产欧美久久久精品影院| 97久久精品人人澡人人爽| 伊人久久大香线蕉AV色婷婷色| 国产精品久久久天天影视| 99久久精品免费看国产一区二区三区 | 久久妇女高潮几次MBA| 97久久超碰国产精品2021| 中文字幕精品久久久久人妻| 7777久久亚洲中文字幕| 久久久久av无码免费网| 日本欧美国产精品第一页久久| 国产精品美女久久久久| 国产偷久久久精品专区| 久久91这里精品国产2020| 久久伊人精品青青草原高清| 人妻无码αv中文字幕久久琪琪布| 久久99精品国产麻豆蜜芽| 欧美伊香蕉久久综合类网站| 久久国产乱子伦免费精品| 中文字幕人妻色偷偷久久| 热99RE久久精品这里都是精品免费| 久久精品亚洲乱码伦伦中文| 久久中文字幕一区二区| 国产精品欧美久久久久天天影视| 91精品国产9l久久久久| 国产精品久久久久9999| 国产精品久久久久久一区二区三区 | 亚洲精品NV久久久久久久久久| 国产精品美女久久久久AV福利| 一本一道久久精品综合| 国内精品久久久久久久影视麻豆 | 国产精品99久久免费观看|