我有一个存储过程,它使用##temp
动态创建select * into ##temp from tablename
的临时表。
我遇到的问题是这个存储过程似乎删除或仅在运行查询的那个时刻使其可用,尽管##
是全局的并且可以被其他用户使用我知道。
我正在使用SSRS来提取存储过程并使用钻取从此报告到同一报告,第一个只显示图表,第二个报告是使用动作链接通过参数但第二个报告的相同存储过程无法识别##temp
表。
现在你已经掌握了背景,有没有办法解决这个或更好的方法,请记住我们目前没有数据仓库,所以只需使用临时表来完成工作。
由于
答案 0 :(得分:1)
来自MSDN:
当创建表的会话结束且所有其他任务已停止引用它们时,将自动删除全局临时表。任务和表之间的关联仅在单个Transact-SQL语句的生命周期内维护。这意味着在创建会话结束时主动引用该表的最后一个Transact-SQL语句完成时,将删除全局临时表。
如果您拥有该服务器的管理员权限,请尝试this answer。