SQL Server中的临时表-如果查询需要很长时间才能完成,则会发生错误



查看以下查询。

select * 
into TempTable
from MainTable
select * from TempTable
WAITFOR DELAY '00:00:10'
drop table TempTable

执行此查询后,我打开其他窗口并执行查询:

select * 
into TempTable
from MainTable
select * from TempTable
drop table TempTable

我得到以下错误:

数据库中已经有一个名为"TempBucket"的对象。

假设它是存储过程的一部分,并且需要很长时间才能完成。如果对该存储过程进行第二次调用,则会发生此错误。如何修复此错误?

我假设您使用的是MSSQL DBMS。使用真正的临时表:在表的名称前面加上"#"。使用此方法,临时表将仅存在于创建它的过程的范围内。

select * 
into #TempTable
from MainTable
select * from #TempTable

没有滴剂实际上是必要的,但可能是更好的做法。

试试这个-

IF OBJECT_ID (N'tempdb.dbo.#TempTable', 'U') IS NOT NULL
   DROP TABLE #TempTable
SELECT *
INTO #TempTable
FROM dbo.MainTable
SELECT *
FROM #TempTable

相关内容

最新更新