多用户环境中的临时表使用情况

tme*_*cer 5 sql t-sql sql-server reporting-services

这是情况:

我有一个使用SP作为数据集的SSRS报告.SP创建一个临时表,将一堆数据插入其中,然后选择将其返回以供SSRS报告.挺直的.

题:

如果多个用户运行的报表选择了不同的参数,SP创建的临时表是否会在tempdb中冲突,并且可能不会返回预期的数据集?

Phi*_*ley 20

很可能不是.如果临时表被定义为#temp@temp,那么您是安全的,因为这些临时表只能由创建连接访问,并且只会持续执行存储过程的持续时间.但是,如果您正在使用##temp表(两个"磅"符号),而这些表也仅在创建存储过程运行时持续,则它们将被该SQL实例的所有连接公开并可访问.

你没有使用##表的可能性很大,所以你可能很安全.


Joe*_*lli 6

带有单个 # 的临时表是一个本地临时表,其范围仅限于创建它的会话,因此冲突应该不是问题。