gpt4 book ai didi

tsql - 从存储过程中获取前 N 个

转载 作者:行者123 更新时间:2023-12-04 05:39:19 24 4
gpt4 key购买 nike

我有一个无法修改的存储过程,在有人建议我重写存储过程或将存储过程中的查询添加到函数之前,我将强调这一点。

该过程存在于我们访问非常有限的另一个数据库上;所以我想要做的是以某种方式将存储过程包装在 中查询 , 功能存储过程 这将允许我选择前 N 行 来自 返回数据 .

理想情况下,我可以调用类似...

DECLARE @ForeName varchar(50)
DECLARE @Surname varchar(50)
DECLARE @DOB datetime
DECLARE @Sex varchar(1)

SET @Surname = 'Smith'

SELECT TOP 10 (
EXECUTE @RC = [Some_Other_Database].[dbo].[sp_search_demographics]
,@ForeName
,@Surname
,@DOB
,@Sex
)
GO

编辑:(我还应该注意,存储过程返回一个包含行数和行数的参数)

编辑 2:我还应该注意,我使用的是 MS SQL Server 2008 R2

我知道这绝不是正确的,有没有办法做这样的事情?目前,对于模糊查询,我们返回了数千行;这大大减慢了服务器的速度。

我已经为解决方案做了一些谷歌搜索和堆栈溢出,但不幸的是,我能找到的所有建议都涉及修改存储过程。

最佳答案

查找 EXEC SP_EXECUTESQL(@SQL)
然而,问题是被调用的 sp 仍将返回所有行,因此您可能无法获得所需的性能改进。
您还可以设置查询返回的行数 - 但取决于您的访问级别
http://blog.sqlauthority.com/2007/04/30/sql-server-set-rowcount-retrieving-or-limiting-the-first-n-records-from-a-sql-query/
希望这有帮助

关于tsql - 从存储过程中获取前 N 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com