永发信息网

SQl2005 if else 和临时表的问题 在线等!!!!!!!!

答案:3  悬赏:0  手机版
解决时间 2021-03-04 18:46
  • 提问者网友:疯子也有疯子的情调
  • 2021-03-04 04:37
写sql存储过程是遇到如下问题:
create proc proc_1
as
if object_id('tempdb.dbo.#t') is not null
drop table #page
if @a>1
begin
select * into #t from t_a
end
else
begin
select * into #t from t_b
end
select count(*) frm #t

这样在执行的时候会报#t已存在的错误,这应该怎么办呢?望各位高手帮帮忙
做好不要取两个临时表因为我在if else 外面还有很多判断都是基于哪一张表的如果见两个会很麻烦的,在线急等!!!!
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-03-04 04:49
这样据说是不行的,因为存储过程的预编译功能……
不知后来怎么解决的?
全部回答
  • 1楼网友:动情书生
  • 2021-03-04 06:36
你先判断 tempdb.dbo.#t 是否存在,如果存在就删除 #page,但是没有删除 tempdb.dbo.#t,所以在下面的 into #t 时会提示 #t 已存在!是不是要先删除#t。
  • 2楼网友:时间的尘埃
  • 2021-03-04 05:19
只有一行语句可以这样写 if 1=1  xxxxx else xxxxx 多语句可用begin end块 if 表达式 begin 条件成立时执行这里的语句 end else begin  条件不成立时执行这里的语句 end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯