请教插入临时表的问题

bigmingming 2015-10-27 03:03:51
我想根据参数不同,执行不行的查询条件
,表TEST字段很多,然后还要对条件返回的临时表进行其它操作

例如
IF @s_CPFlag = '0'
BEGIN
SELECT *
INTO #Temp1
FROM TEST
WHERE .............
END
IF @s_CPFlag = '1'
BEGIN
SELECT *
INTO #Temp2
FROM TEST
WHERE .............
END
IF @s_CPFlag = '2'
BEGIN
SELECT *
INTO #Temp3
FROM TEST
WHERE .............
END

其中的#TempX 表再进行操作,请问不CREATE 一个很多字段的临时表以外,
,主要不想建一个超多字段的临时表,还有其它办法吗
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南雪_158 2015-10-27
  • 打赏
  • 举报
回复
临时表使用完之后都需要drop掉的
道玄希言 2015-10-27
  • 打赏
  • 举报
回复
額。。。 你1楼是 #Temp1, #Temp2, #Temp3, 等多个临时表。。。 5# 又只有一个临时表了啊。。。 都写成了#Temp , 如果你这样写,执行DROP 之前,如果标记同时存在 0, 1 等, 则会有两个或两个以上的插入,在第二次插入位置,就会报错了。 SELECT 。。。。。。 INTO。。。。。。 插入要求目标表不存在,自己根据查询结果创建一个表。
bigmingming 2015-10-27
  • 打赏
  • 举报
回复
IF @s_CPFlag = '0' BEGIN SELECT id, c1,c2,c3... INTO #Temp FROM TEST WHERE ............. END IF @s_CPFlag = '1' BEGIN SELECT id, c1,c2,c3... INTO #Temp FROM TEST WHERE ............. END ***操作#Temp表*** **返回#Temp表数据 **最后DROP#Temp表 这样还是不行
道玄希言 2015-10-27
  • 打赏
  • 举报
回复
汗。。。。 你执行完毕后,沒 drop 掉表么。。。。 在你执行完毕后, 应该需要 DROP TABLE #Temp1 的吧 否则,你用select into 再次插入的时候, 因为 #Temp1 表在前一次已经创建了,所以会出错的額。
bigmingming 2015-10-27
  • 打赏
  • 举报
回复
数据库中已存在名为 '#Temp1 的对象。
bigmingming 2015-10-27
  • 打赏
  • 举报
回复
字段写清楚还是不行
道玄希言 2015-10-27
  • 打赏
  • 举报
回复
那你將 * 表示的你具体需要哪些数据,都写明白了, 不需要的就不写。 BEGIN SELECT id, c1,c2,c3... INTO #Temp1 FROM TEST WHERE ............. END

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧