从结果中提取前10个而不修改实际查询

时间:2013-08-12 11:56:11

标签: sql-server

我有一个动态查询,我在存储过程中使用exec命令来执行它。

现在我想从执行查询的结果中仅提取前10行。

我无法修改查询,我只想从结果中提取

这是我正在执行的查询。

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

 EXEC (@str)

如何在不修改实际查询的情况下限制结果

由于

2 个答案:

答案 0 :(得分:9)

使用ROWCOUNT

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

SET ROWCOUNT 10
EXEC (@str)
SET ROWCOUNT 0

答案 1 :(得分: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)方式将使用ROWCOUNT方法,就像@ eKek0那样。