VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1104|回复: 7

一个奇怪的错误

[复制链接]

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-11-11 09:30:01 | 显示全部楼层 |阅读模式
declare @isWastage bit
declare @partcode varchar(20)

set @isWastage=1
set @PartCode='1234567890'

if @isWastage=1   --要求计算结果包含损耗
   select fpartcode, dosage INTO #TMP2 from tbom007d  where fparentpartcode = @PartCode
else
   select fpartcode, dosage*2 INTO #TMP2 from tbom007d  where fparentpartcode = @PartCode                    --这一行出错

出现以下错误:
服务器: 消息 2714,级别 16,状态 1,行 11
数据库中已存在名为 '#TMP2' 的对象。

这是怎么回事啊?谢谢
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-11-11 09:45:01 | 显示全部楼层
declare @isWastage bit
declare @partcode varchar(20)

set @isWastage=1
set @PartCode='1234567890'

if @isWastage=1   --要求计算结果包含损耗
   select fpartcode, dosage INTO #TMP1 from tbom007d  where fparentpartcode = @PartCode
else
   select fpartcode, dosage*2 INTO #TMP2 from tbom007d  where fparentpartcode = @PartCode
回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-11-11 11:30:01 | 显示全部楼层
TO:我是杀人狂‵My ɡīr!.ˊ想念妳ˋ 。(*^_^*)

  程序的目的是根据@isWastage是否为真,将不同的查询结果插入到一张新表#TMP2中.

  当@isWastage为真时,不知道为什么也执行了else后边的语句
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-11-11 11:45:02 | 显示全部楼层
前面加个判断,如果存在#TMP2 就DROP吧。。。

回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-11-11 12:00:01 | 显示全部楼层
我在第一行加了一个 drop table #TMP2 结果也是一样的,加不加都一样
回复

使用道具 举报

0

主题

28

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-11-11 12:15:01 | 显示全部楼层
declare @isWastage bit
declare @partcode varchar(20)

set @isWastage=1
set @PartCode='1234567890'

if @isWastage=1   --要求计算结果包含损耗
   begin
   if object_id(N'Tempdb..#TMP2') is not null dorp table #tmp2
   select fpartcode, dosage INTO #TMP2 from tbom007d  where fparentpartcode = @PartCode
end
else
begin
   if object_id(N'Tempdb..#TMP2') is not null dorp table #tmp2

   select fpartcode, dosage*2 INTO #TMP2 from tbom007d  where fparentpartcode = @PartCode
end                   --这一行出错

回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-11-11 12:45:01 | 显示全部楼层


if @isWastage=1   
   insert into #tmp2 select fpartcode, dosage  from tbom007d  where fparentpartcode = @PartCode
else
   insert into #tmp2 select fpartcode, dosage*2  from tbom007d  where fparentpartcode = @PartCode
回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-11-11 13:15:01 | 显示全部楼层
为什么有if条件判断,没有执行else后边的语句,程序还出错呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表