全局临时表在Microsoft Sql Server中被删除

时间:2015-10-14 04:52:10

标签: sql-server global-temp-tables

我们有一组在SP中创建并填充的全局临时表。这是从应用程序中调用的主要sp。

现在说我是第一个调用主SP的用户,全局临时表被创建,一切正常。但有时(可能是多个用户访问主SP时)表被删除并收到错误消息,指出无效的对象名称

其他人面临同样的问题,全球临时表被删除了吗?

先谢谢!!

1 个答案:

答案 0 :(得分:0)

您可以在创建temp table之前检查表格是否存在 而不是global temp table,如果表仅在存储过程的范围内使用,则更喜欢local temp tablestable variable

存储过程完成后,将自动删除在存储过程中创建的本地临时表。该表可以由创建该表的存储过程执行的任何嵌套存储过程引用。调用创建表

的存储过程的进程无法引用该表

所有其他本地临时表在当前会话结束时自动删除

当创建表的会话结束且所有其他任务已停止引用它们时,将自动删除全局临时表。任务和表之间的关联仅在单个Transact-SQL语句的生命周期内维护。这意味着在创建会话结束时主动引用表的最后一个Transact-SQL语句完成时删除全局临时表

在创建本地临时表之前,

IF OBJECT_ID('tempdb..#local_temp_table') IS NOT NULL DROP TABLE #local_temp_table
CREATE TABLE #local_temp_table(id int)

或表变量

declare @table_var table(id int)
相关问题