drop temp table时遇到问题。如果在1次以下运行查询显示错误
已经有一个名为'#a'在数据库中。
请一次运行查询
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #a
End
Create table #a
(
id int
)
insert into #a
select 1
select * from #a
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #A
End
Create table #a
(
id int
,name varchar(10)
)
insert into #a
select 2,'name'
select * from #A
答案 0 :(得分:1)
尝试:您必须使用GO
制作批处理并单独执行每个批处理,因为您要再次创建相同的临时表并立即执行它:< / p>
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #a
End
GO
Create table #a (id int)
insert into #a
select 1
select * from #a
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #a
End
GO
Create table #a(id int,name varchar(10))
insert into #a
select 2,'name'
select * from #a
注意:请尝试对表名
使用类似的CASE
答案 1 :(得分:0)
你错过'GO'声明。
中间没有'GO',整个事物将被视为一个单独的脚本,当select语句查找列时,它将无法找到。
使用“GO”,它会将脚本的一部分视为“GO”作为一个批处理,并在“GO”之后进入查询之前执行。
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #a
End
go
Create table #a
(
id int
)
insert into #a
select 1
select * from #a
if(OBJECT_ID('tempdb..#a','U')Is not null)
Begin
drop table #a
End
go
Create table #a
(
id int
,name varchar(10)
)
insert into #a
select 2,'name'
select * from #a
如果它有用,请将其标记为答案。