/ *
名前:spAll_ReturnRowsの
入力:
出力:
呼び出し:
  EXECのspAll_ReturnRows' SELECT * FROMテーブル名'ページ番号、レコード数が返され、'マスターキー''ソートフィールド'
  spAll_ReturnRows' ALL_CATEGORIES SELECT * FROM '2,10、' [ IDは]「」[ID]は、 「
説明:[百万]は一般的な手順は..格納ストアド・プロシージャ返しの数は、ページの指定された数を記録します

* /

CREATE PROCEDURE dbo.spAll_ReturnRows

@SQL NVARCHAR(4000)、
@Page int型、
@RecsPerPage int型、
@ID VARCHAR(255)、
@Sort VARCHAR(255)

AS

(4000)@Str NVARCHARを宣言

筋力= + CAST 'TOPをSELECT '(@RecsPerPage AS VARCHAR(20))+' * FROM(@ SET '+ @ SQL +')T T.'+@ID+' NOT INは
(@((TOP「+ CASTを選択VARCHAR(20))+ 'AS RecsPerPage *(@ページ-1))'+ @ ID +'(FROM '+ @ SQL +')BY T9のORDER '+ @ソート+')ORDER BY + @ソート'

PRINT @Str

EXEC sp_executesqlを@Str
GO

/ *
名前:spAll_DeleteNoneUnique
入力:クエリにテーブル名とフィールドリスト
出力:
呼び出し:
説明:データ表示の千万ページを達成!- 5秒以内に取得することができる1448のレコード100万のレコード、ページ1200男性はそうではありませんか?
* /

PROCEDURE GetRecordFromPage CREATE
    @tblName VARCHAR(255)、 -テーブル
    @fldNameのVARCHAR(255)、 -フィールド名
    @PageSize INT = 10、 -ページサイズ
    @PageIndex INT = 1、 - Pの
    @IsCountビット= 0、 -記録された非ゼロ値の合計数を返し
    、@OrderTypeビット= 0 -ソートタイプを設定し、下降中の非ゼロ値
    @strWhereのVARCHAR(1000)=「」 - クエリが(注:追加しない場合)
AS

@strSQLのVARCHAR(6000)を宣言-文章は
一時変数- (100)@strTmpのvarchar型を宣言する
宣言@strOrderのVARCHAR(400) -秩序の種類

もし@OrderType!= 0を
始める
    "<(選択分" @strTmp =を設定し
    、 "[+ @fldName + "] DESC"順" @strOrder =設定
終了

始める
    "(最大選択設定@strTmp =>"
    設定@strOrder = "ORDER BY [" + @fldName + "] ASC"

@strSQL = + STR "トップを選択する"(@PageSize)+ "*から["設定
    "([" + @tblName + "]ここで、[" + @fldName + "]" + @strTmp +
    + @fldName +「] )から(選択トップ"+ STR((@ pageIndexパラメータ-1)* @がPageSize)+" [」
    + @fldName + "]から[" + @tblName + "]" + @strOrder + ")")tblTmpとして
    + @strOrder

もし@strWhere!= ''
    設定@strSQLは= "[から*" + + STR(@PageSize) "トップを選択し、"
        [(+ @tblName + "]ここで、[" + @fldName + "]" + @strTmp +」 "
        + @fldName + "])(上選択" + STR((@ pageIndexパラメータ-1)* @がPageSize)+" [」から
        + @fldName + "] [" + @tblName + "から]ここで" + @strWhere + ""
        + @strOrder + ")tblTmpなど)と" + @strWhere + "" + @strOrder

@PageIndex = 1があれば
始める
    @strTmp = ""設定
    の場合@strWhere!= ''
        を設定@strTmp = "ここで、" + @strWhere

    @strSQLは= + "*から[" + STR(@PageSize) "トップを選択し、"設定
        + @tblName + "]" + @strTmp + "" + @strOrder
端を

@IsCount場合!= 0
    "[+ @tblName + "]"からトータルとしてSELECT COUNT(*)"セット@strSQL =

EXEC(@strSQL)

GO