gpt4 book ai didi

sql-server - 根据来自 SP 的结果集动态创建临时表

转载 作者:行者123 更新时间:2023-12-04 07:09:13 24 4
gpt4 key购买 nike

我有一个调用另一个 SP 的 SP,并且需要将结果集过滤到我感兴趣的列。

DECLARE @myTable TABLE
(
Field1 INT,
Field2 INT,
Field3 INT
)

--If someSP returns say 30 params and I need only 3 params, I don't want to declare all 30 in my temp table @myTable

INSERT INTO @myTable
(Field1, Field2, Field3)
EXEC someSP --Need to selectively filter recordset from SP
@InputParam1 = 'test'

如果我不能这样做,我想根据 someSP 的结果集动态创建临时表(这样可以在修改 someSP 以添加新参数时减轻维护问题,我也不需要修改此过程

最佳答案

简短的回答:不,你不能那样做。

您必须使用将从存储过程返回的确切列数预先声明您的临时表。

解决方法是使用持久表。例如,您的数据库中可以有一个名为 someSPResults 的永久表。每当 someSP 更改为具有不同数量的输出列时,更改 someSPResults 的格式作为部署的一部分。

然后你可以这样做:

insert into dbo.someSPresults
exec someSP

或者在 someSP 内部,您可以将结果直接插入到 someSPresults 表中,作为执行的正常部分。您只需要确保准确识别 someSPresults 表中的哪些记录来自 someSP 的每次执行,因为存储的 proc 可以同时触发多次,从而将大量数据转储到 someSPresults 中。

关于sql-server - 根据来自 SP 的结果集动态创建临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642666/

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