gpt4 book ai didi

sql - 在 SELECT 语句中使用内联存储过程的结果

转载 作者:行者123 更新时间:2023-12-04 23:01:30 27 4
gpt4 key购买 nike

我想内联执行一个存储过程,在 SELECT 的列定义中声明,类似于此:

SELECT n.Name,
n.Key,
(EXEC sp_GetNickname @nameKey = n.NameKey) AS Nickname
FROM Names n

我无权修改存储过程(它来自第三方系统),但我知道它总是只选择一行和一列(这是一个标量结果)。

我需要能够内联调用它,因为这个 select 语句在递归 CTE 中,如下所示:
WITH Nicknames (Name, Key)
AS
(
SELECT ... -- Base
UNION ALL
SELECT ... -- Recursive
)

还有一个存储过程的“OUT”版本,如果这会更有用,它将按如下方式执行:
EXEC sp_GetNicknameOut @nameKey = n.NameKey,
@outNickname = @theNickname OUTPUT

我无法向数据库添加任何存储过程或函数,因为此查询是从 C# 应用程序动态执行的。

我怎样才能做到这一点?

最佳答案

这不能按要求完成。
您也许可以在不调用过程的情况下执行递归 CTE 并将结果保存到临时表中,然后在它上面打开一个游标,然后在游标中执行一个过程。不好,但我看不出任何其他方式。

关于sql - 在 SELECT 语句中使用内联存储过程的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770668/

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