从SQL Server中的存储过程结果集中获取前N条记录

维诺德·库马尔(Vinod Kumar)

是否有任何解决方案/查询可从存储过程结果中获取前N条记录,而无需检索整个结果集?

考虑到我的存储过程返回了300万行,而我只想要它的前10行。

您可以使用TOP子句来实现

句法

SELECT TOP number|percent column_name(s) 
FROM table_name 
WHERE condition;

假设您有Your_stored_procedure用户返回列表

CREATE PROCEDURE Your_stored_procedure
AS
    SELECT UserId, UserName
    FROM yourtable
GO;

在这里,您需要创建临时表来存储存储过程中的值

-- Check result
CREATE TABLE #TempTable 
(
    UserId          INT,
    UserName        varchar(100),
)
INSERT INTO #TempTable(UserId, UserName) 
EXEC Your_stored_procedure

这样你就可以得到结果

SELECT TOP 10 UserId, UserName
FROM #TempTable 
ORDER BY UserId -- As @Squirrel's comment, TOP should come with ORDER BY 

注意

您应确保表中的列数根据存储过程的结构而定。

更新

正如@Vinod Kumar的评论一样,您也可以使用OPENQUERY来实现它,如下所示

SELECT top 1 * FROM OPENQUERY ([MyServer], 'EXEC [VinodTest].[dbo].[tblAuthorsLarge] year = 2014')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取sql server存储过程结果以在其他存储过程中处理?

SQL Server存储过程正在插入两条记录

使用 Bigquery(标准 SQL)获取每组分组结果的前 n 条记录

在SQL Server中获取存储过程的文本

存储过程从SQL Server中的存储过程本身获取价值

如何使用SQL对结果集中的前20条记录进行排序?

VB.net获取SQL Server存储过程结果

如何在vb.net组合框中获取SQL Server存储过程的结果?

使用SQL Server通过存储过程调用将记录手动添加到SQL选择查询的结果中

如何更新SQL Server中的前100条记录

根据SQL Server中的条件返回前1条记录

无法从SQL SERVER中的存储过程返回结果

如何从sql server中获取最后一条记录?

插入前 Microsoft SQL Server 转换中的存储过程

访问中每个组sql的前n条记录

无法在 SQL 子查询中获取 N 条不同的记录

从SQL Server存储过程获取字段

sql server存储的proc,无法在java中获取结果集

如何使用SQL Server将存储过程的结果存储在变量中

SQL Server 存储过程将多行 SELECT 语句结果存储到单个变量中

是否可以在执行触发器之前从SQL Server存储过程获取输出结果集?

我需要从SQL Server查询中获取前5条记录,但要满足where子句条件的所有记录的计数

SQL Server:作为存储过程执行的结果返回选择的结果

记录在 SQL Server 中没有按日期获取。找到 0 条记录

SQL Server:存储过程中的IF THEN ELSE

SQL Server 中存储过程的可选参数

SQL Server 2012中的存储过程

在SQL Server中运行多个存储过程

SQL Server中的功能与存储过程