多个存储过程调用期间的SQL Temp表生存时间

时间:2017-04-07 09:46:47

标签: sql

我有一个包含2种不同行为的存储过程。第一种情况是它做事并创建一个本地临时表(#MyTempTable)。第二种情况检查临时表的存在,如果存在,则对其进行处理。但在第二次调用时,临时表不再存在。据我所知,在连接存活之前不应删除它。

为什么?

目前我用全局临时表(##MyTempTable)解决了它,但我想知道服务器删除文件的原因。

谢谢你的到来。

1 个答案:

答案 0 :(得分:0)

您必须从第一个存储过程调用第二个存储过程。如果在一个存储过程中创建temp表,则在流退出此SP后,将删除temp表。做类似下面的事情。

CREATE PROCEDURE Procedure1
AS 
    [parameters]
BEGIN
   EXEC Procedure2 [parameters];
END

通过这种方式,您的第二个SP将可以访问在第一个SP中创建的本地 temp 表。