查看以下查询。
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