SQL Server全局临时表锁定

时间:2014-07-10 21:11:38

标签: sql sql-server global-temp-tables

如何在存储过程中锁定全局临时表,该表由SELECT INTO语句创建和填充?例如:

SELECT * 
INTO ##TempEmployee   
FROM Employee   

执行此存储过程以生成报告,并在每个客户端数据库(每个客户端使用不同的DB的多租户架构)中生成报告。在同时生成报告时,我不希望在客户端之间共享此全局临时表中的数据。我没有选择,只能使用全局临时表,因为我使用它来使用PIVOT动态生成列。

2 个答案:

答案 0 :(得分:1)

为什么不将它包含在transaction block之内

begin transaction
SELECT * 
INTO ##TempEmployee   
FROM Employee 

答案 1 :(得分:0)

试试这个,

<强> WorkDummySQL

  create table rr(id integer,name varchar(20))
    insert into rr values(1,'aa')
    select * from rr

<强> Tempdb的

  

从WorkDummySQL.dbo.rr

中选择*到## ta