2010-12-30 13 views
0

SPを作成するには、どのようにして結果ページを得ることができますか?私はpageSize、pageNo、sortCol、directionをSPに渡し、この情報に基づいて結果を欲しいです。 SPのロジックでこれを処理できますか?データをページ単位で取得する方法と列を並べ替える

Table1 { First, Last, Location } 

SP_GetAll(pageNo=3, pageSize=10, sortCol="First", direction="ASC") 

これはSQL Server 2008の新機能ですか?

+0

2005年と比較して2008年の新機能はありません。通常は 'row_number()'を使用して2つの値の間でレコードを選択します。 SQL Server 2011には[OFFSET](http://www.kodyaz.com/articles/sql-paging-in-sql-server-2011-sql-order-by-offset-fetch-next-rows.aspx)がありますが、物事を楽にする。 –

答えて

1

これには、sprocよりも適したインラインテーブル値関数(TVF)があります。理由は、結果が他のクエリに参加できることです。 SELECT文の開始時に

には、次のものがあります。

WHERE (Table.rowNo BETWEEN (@pageNumber - 1) * @pageSize + 1 
     AND @pageNumber * @pageSize) 

データセットが大きい場合、(:あなたのselect文の終わりに

SELECT TOP (100) PERCENT ROW_NUMBER() OVER (ORDER BY ... 

を、次のように置きますまたはクエリ複合体)、結果を一時テーブルにスプールし、一時テーブルの周りをページングすることを検討してください。

関連する問題