我有一个动态查询,我在存储过程中使用exec命令来执行它。
现在我想从执行查询的结果中仅提取前10行。
我无法修改查询,我只想从结果中提取
这是我正在执行的查询。
DECLARE @Str nvarchar(max)
SET @str = 'SELECT *
FROM tblC6FD_QueryBuilderMaster'
EXEC (@str)
如何在不修改实际查询的情况下限制结果
由于
答案 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那样。