<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Dev Guide: js | css | HTML(DOM) WEBCAST .NET4 Lib Web.config-WCF MVC3-EF4.1 T-SQL-(2012)

      Transact-SQL 示例 - 如何在拼接的動態sql內調用外部變量

      任務需求是這樣的,定義一個存儲過程可以根據設定的存儲過程參數去查詢某個表返回可以分頁的,參數的功能如下:
      1.返回記錄集的第n頁(@pageNo)
      2.每頁顯示n條記錄(@pageSize)
      3.篩選條件(@where)
      4.排序規則(@orderby)
      5.總記錄數(@rows)

      Ok,在拿到需求后,便開始分析。。。這里需要使用到拼接sql字符串變量然后Exec @sql即可,但是實踐發現。Exec @sql并不能把總記錄數傳遞給外部的@rows OUTPUT參數上,為此stackoverflow一番發現答案

      下面是本人目前的做法: 

      --定義存儲過程
      --    示例過程中使用每個數據庫都會自帶的系統視圖sys.objects作為測試用表
      CREATE PROCEDURE dbo.Demo1
          @pageNo int = 1,
          @pageSize int = 10,
          @where nvarchar(1000) = N'',
          @orderby nvarchar(1000) = N'name asc',
          @rows int OUTPUT
      AS
      BEGIN
          DECLARE @sql nvarchar(max)
      
          SET @sql = N'SELECT @rowsInner = COUNT(1) FROM sys.objects'
      
          IF @where <> N''
              SET @sql = @sql + N' WHERE ' + @where
      
          SET @sql = @sql + N';
          SELECT *
          FROM (
              SELECT ROW_NUMBER() OVER(ORDER BY ' + @orderby + N') RowId,
                  object_id,
                  name
              FROM
                  sys.objects '
      
          IF (@where <> N'')
              SET @sql = @sql + N'WHERE ' + @where
          
          SET @sql = @sql + N'
          ) a
          WHERE
              a.RowId between (@pageNoInner - 1) * @pageSizeInner + 1 AND @pageNoInner * @pageSizeInner'
      
          --若要調試請撤銷如下代碼的注釋并注釋<code1/>處
          --SET @rows = 100
          --print @sql
          
          -- <code1>
          EXEC sp_executesql @sql, 
              N'@pageNoInner int, @pageSizeInner int, @rowsInner int OUTPUT',
              @pageNoInner = @pageNo,
              @pageSizeInner = @pageSize,
              @rowsInner = @rows OUTPUT
          -- </code1>
      END
      

        

      以下為調用:

      DECLARE @rows int
      exec dbo.Demo1 2, 20, N'', N'object_id asc', @rows out
      
      print @rows
      

      實現的原理其實將原來的Exec @sql改用sp_executesql 注意該存儲過程的第二個參數是定義動態變量,第三個參數開始便是設置動態變量的值。

      posted @ 2013-06-13 17:09  dotNetDR_  閱讀(956)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 日韩精品亚洲专区在线观看| 国内外成人综合免费视频| 国产成人高清亚洲综合| 亚洲中文字幕无码中字| 亚洲一二三区精品美妇| 高清自拍亚洲精品二区| 亚洲av激情五月性综合| 久久精品国产亚洲av忘忧草18 | 精品国产91久久粉嫩懂色| 精品国产成人国产在线观看| 四虎国产精品永久在线| 河源市| 99久久精品免费看国产电影| 欧洲中文字幕国产精品| 午夜男女爽爽影院在线| 波多野结衣久久一区二区| 亚洲a∨无码无在线观看| 狠狠躁夜夜躁人人爽天天69| 日韩精品一区二区亚洲专区| 国产精品天干天干综合网| 亚日韩精品一区二区三区| 日本三级理论久久人妻电影| 99久久亚洲综合精品成人网| 四虎成人精品永久免费av| 97人妻天天摸天天爽天天| 亚洲在av极品无码天堂| 在线亚洲妇色中文色综合| 国产精品大全中文字幕| 亚洲春色在线视频| 亚洲精中文字幕二区三区| 色综合久久婷婷88| 日本高清在线观看WWW色| 国产美女被遭强高潮免费一视频 | 日本熟妇XXXX潮喷视频| 在线亚洲妇色中文色综合| 国产gaysexchina男外卖| 五月天激情国产综合婷婷婷| 亚洲综合一区二区三区不卡 | 亚洲男人天堂2018| 亚洲成在人线在线播放无码 | 久久久久成人精品|