if (@bigtype = 1)
begin
select * into #temptable from a
end
else if (@bigtype = 2)
begin
select * into #temptable from a
end
报#temptable重复,如何解决,先判断有表再删除似乎不起作用
if object_id('tempdb..#tempTable') is not null
Begin
drop table #tempTable
End
试一下,加个这个判断
用变量表 DECLARE @T TABLE(ID INT)
你可以试试这个:先创建#temptable
if (@bigtype = 1)
begin
insert into #temptable select a
end
else if (@bigtype = 2)
begin
insert into #temptable select a
end
另外,判断临时表是否存在
if object_id('tempdb.dbo.#temptable') is not null
drop table #temptable
暂时做了一些研究,还没有深入,得出的情况是这样
declare @bigtype int
set @bigtype = 1
begin tran
if (@bigtype = 1)
begin
select * into #tempTable1 from ErrorLog
print '1'
end
else if (@bigtype = 2)
begin
select * into #tempTable2 from ErrorLog
print '2'
end
commit tran
如果分支中临时表命名一样,就会报临时对象已经存在,同时下面的语句都会报没有对象,或者没有权限
select * from tempdb.sys.objects where object_id = object_id('tempdb..#tempTable1')
drop table #tempTable1
但是如果分支中使用两个不同的名字,就一切正常,可以查询的到,也可以删除
机制今天太忙,还没有来得及看
看能否解决楼主的问题