这是情况:
我有一份使用SP作为数据集的SSRS报告。 SP创建一个临时表,将一堆数据插入其中,然后选择将其返回以供SSRS报告。很直接。
问题:
如果多个用户运行的报表选择了不同的参数,SP创建的临时表是否会在tempdb中冲突,并且可能不会返回预期的数据集?
答案 0 :(得分:19)
很可能不是。如果临时表定义为#temp
或@temp
,那么您就是安全的,因为这些临时表只能由创建连接访问,并且只会在执行期间持续存储过程。但是,如果您正在使用##temp
表(两个“磅”符号),而这些表也只在创建存储过程运行时持续,那么它们将被所有与该SQL的连接公开并可访问实例
你没有使用##表,这很好,所以你可能很安全。
答案 1 :(得分:3)
具有单个#的临时表是本地临时表,其范围仅限于创建它的会话,因此冲突不应成为问题。