【问题标题】:SQL Server Global Temporary Table LockingSQL Server 全局临时表锁定
【发布时间】:2014-09-01 09:48:05
【问题描述】:

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

SELECT * 
INTO ##TempEmployee   
FROM Employee   

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

【问题讨论】:

  • 为什么要使用全局临时表?
  • 我也很困惑为什么需要一个全局临时表。

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


【解决方案1】:

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

begin transaction
SELECT * 
INTO ##TempEmployee   
FROM Employee 

【讨论】:

    【解决方案2】:

    试试这个,

    WorkDummySQL

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

    临时数据库

    select * into ##ta from WorkDummySQL.dbo.rr

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2011-07-10
      • 2010-10-15
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2012-10-17
      相关资源
      最近更新 更多