gpt4 book ai didi

tsql - 在 SQL Server 2008 中的存储过程之间使用临时表

转载 作者:行者123 更新时间:2023-12-02 06:42:09 26 4
gpt4 key购买 nike

我目前有一个调用许多存储过程的主存储过程:

Main --| 
--|
--| > Exec Pre-processing SP (create and populate #temp table)
--|
--| > Exec Actual update
--|
--| > Exec Post-Process (consume and drop #temp table)

我目前遇到的问题是我需要从数据库中获取原始值,并将这些值传递到主存储过程中,以便我可以对最后一步中的更新执行后处理(存储过程) 被调用。

我无法更改存储过程签名或主存储过程。

当我尝试执行此场景时,我在后处理存储过程中得到一个无效对象。

如何将我的值从第一个存储过程传递到最后一个存储过程。

最佳答案

您需要在调用层次结构中创建比使用它的所有存储过程更高的临时表。既然你说你不能改变 Main,那么唯一的机会就是创建一个新的最外层过程来创建 #temp 然后调用 Main.

然后您可以修改前置过程以填充现有的表。您不需要在任何地方显式删除表格。


或者,您可以创建一个永久表,并包含一个 spid 列,指示从哪个连接插入数据。您还要确保对该表的任何选择/删除再次使用 @@SPID 值。我将此作为对 Session-global temporary tables 的回答发布

关于tsql - 在 SQL Server 2008 中的存储过程之间使用临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018521/

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