2013-08-12 12 views
5

私は動的クエリを持っており、ストアドプロシージャでexecコマンドを使用して実行しています。実際のクエリを変更せずに結果からトップ10を抽出

私は実行されたクエリの結果から上位10行だけを抽出したいと思います。

私は、クエリを変更することはできません、私は

これは私が実行していたクエリでの結果から抽出したいです。私はせずに結果を制限することができますどのように

DECLARE @Str nvarchar(max) 
SET @str = 'SELECT * 
     FROM tblC6FD_QueryBuilderMaster' 

EXEC (@str) 

実際

+2

http://msdn.microsoft.com/en-us/library/ms188774.aspx – gvee

答えて

9

使用ROWCOUNT

おかげ照会、変更:

DECLARE @Str nvarchar(max) 
SET @str = 'SELECT * FROM tblC6FD_QueryBuilderMaster' 

SET ROWCOUNT 10 
EXEC (@str) 
SET ROWCOUNT 0 
+0

驚くほど素晴らしい、魔法のように働いた –

2

を '古いSKOOL' の方法は、中間の一時テーブルを持つことです...

CREATE TABLE #temp (yourColName yourType) 

DECLARE @Str nvarchar(max) 
SET @str = 'SELECT * 
     FROM tblC6FD_QueryBuilderMaster' 

INSERT INTO #temp 
EXEC (@str) 

SELECT TOP 10 * 
FROM #temp 

... 'new'(SQL Server> = 2005)の方法では、@ eKek0のようにROWCOUNTメソッドを使用します。

関連する問題