gpt4 book ai didi

sql - 将存储过程的结果附加到先前执行的存储过程

转载 作者:行者123 更新时间:2023-12-04 06:27:49 24 4
gpt4 key购买 nike

我有一个存储过程,它采用包含单个值的单个参数。我想将一组值一个一个地传递给过程,并将合并的结果放入一个表中。这可能吗?

目前我正在使用游标在循环中执行过程,但只能获得传递集合中第一个值的结果。

declare @clientid varchar(10)

create table #tmpp(secid varchar(10))
insert into #tmpp values(2319)
insert into #tmpp values(2855)
insert into #tmpp values(1303)


declare cur CURSOR LOCAL for
select secid from #tmpp

open cur

fetch next from cur into @seclientid

while @@FETCH_STATUS = 0 BEGIN



exec getReportforclient @clientid
fetch next from cur into @clientid
END

close cur
deallocate cur
drop table #tmpp

如果这太模糊/不清楚/愚蠢,有人可以给我一个替代方案吗?非常感谢任何帮助。谢谢。

最佳答案

可能有一种不使用游标的方法,但如果不查看您的存储过程,我们对此无能为力。您可以创建一个与 sp 结果具有相同结构的表(临时的或非临时的),并将结果插入其中。像这样:

DECLARE @clientid VARCHAR(10)

CREATE TABLE #tmpp(secid VARCHAR(10))
INSERT INTO #tmpp VALUES(2319)
INSERT INTO #tmpp VALUES(2855)
INSERT INTO #tmpp VALUES(1303)


CREATE TABLE #Results(col1 INT, col2.... -- create the table that will hold your
-- results

DECLARE cur CURSOR LOCAL for
SELECT secid
FROM #tmpp

OPEN cur
FETCH NEXT FROM cur INTO @seclientid
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #Results
exec getReportforclient @clientid

FETCH NEXT FROM cur INTO @clientid
END

CLOSE cur
DEALLOCATE cur
DROP TABLE #tmpp

SELECT *
FROM #Results

关于sql - 将存储过程的结果附加到先前执行的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522351/

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