我有一个动态查询,我在存储过程中使用 exec 命令来执行它。
现在我只想从执行查询的结果中提取前 10 行。
我无法修改查询,我只想从结果中提取
这是我正在执行的查询。
DECLARE @Str nvarchar(max)
SET @str = 'SELECT *
FROM tblC6FD_QueryBuilderMaster'
EXEC (@str)
如何在不修改实际查询的情况下限制结果
谢谢
我有一个动态查询,我在存储过程中使用 exec 命令来执行它。
现在我只想从执行查询的结果中提取前 10 行。
我无法修改查询,我只想从结果中提取
这是我正在执行的查询。
DECLARE @Str nvarchar(max)
SET @str = 'SELECT *
FROM tblC6FD_QueryBuilderMaster'
EXEC (@str)
如何在不修改实际查询的情况下限制结果
谢谢
使用ROWCOUNT:
DECLARE @Str nvarchar(max)
SET @str = 'SELECT * FROM tblC6FD_QueryBuilderMaster'
SET ROWCOUNT 10
EXEC (@str)
SET ROWCOUNT 0
'old 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
...和“新”(SQL Server >= 2005)方式将使用 ROWCOUNT 方法,就像@eKek0 所做的那样。