SQL数据库中,update触发器,为什么记录更新的时候又新增了一行同样的记录??

pgameli 2009-08-03 04:40:03
rt,这是触发器脚本,在更新监控数据记录表的时候,根据是否评价字段来对统计表做相应的添加和删除
如果是否评价='是',就向两个统计表中添加记录,如果是是否评价='否',就删除记录
现在的问题是,我修改监控数据记录表的同时,他自己又在这个表里面添加了一跳了同样的记录
弄了大半天,不知道错误出现在哪,各位帮我看看,谢谢了

alter TRIGGER UpdateInfo
ON 监控数据记录表 for update
AS
BEGIN
declare @labname varchar(100),@jianceshijian datetime,@baogaoshijian datetime,
@yangpinbianhao varchar(50),@pihao varchar(100),@bianhao varchar(100),@wenjianming varchar(100),
@xiangmu varchar(50),@jianchuxian varchar(50),@jieguo varchar(50),@jieshouren varchar(50),
@fafangren varchar(50),@fafangshijian datetime,@shifou varchar(10)
SET NOCOUNT ON;
set @jianceshijian=getdate()
set @baogaoshijian=getdate()
--查询样品相关信息
select @yangpinbianhao=样品编号,@xiangmu=组分名称,@jianchuxian=评价域值,@jieguo=评价结果,@shifou=是否评价 from inserted
if(@shifou='是')
begin
select @labname=实验室名称,@pihao=实验室检测批号,@bianhao=实验室检测编号,@wenjianming=测量谱图文件名,@jieshouren=接收人,@fafangren=发放人,@fafangshijian=发放时间
from 监控样品登记表 where 样品编号=@yangpinbianhao
--添加实时监控样品报告
insert into 实时监控样品报告表(实验室单位,检测时间,报告时间,实时监控样品编号,实验室检测批号,实验室检测编号,测量谱图文件名,检测项目,单位,实验室方法检出限,检测结果)
values(@labname,@jianceshijian,@baogaoshijian,@yangpinbianhao,@pihao,@bianhao,@wenjianming,@xiangmu,@labname,@jianchuxian,@jieguo)
--添加监控样品发放统计报告
insert into 监控样品发放统计报告表(监控样品编号,检测单位,接受人,发放人,发放时间,检测项目,测试结果)
values(@yangpinbianhao,@labname,@jieshouren,@fafangren,@fafangshijian,@xiangmu,@jieguo)
end
else if(@shifou='否')
begin
delete from 实时监控样品报告表 where 实时监控样品编号=@yangpinbianhao
delete from 监控样品发放统计报告表 where 监控样品编号=@yangpinbianhao
end
END
...全文
350 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pgameli 2009-08-03
  • 打赏
  • 举报
回复
太粗心了

触发器后面我有一个insert测试语句忘删了
  • 打赏
  • 举报
回复
问题确实有点问题,建议再在触发器中delete吧哈哈!
pgameli 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 owenxin26 的回复:]
你指的是当修改“监控数据记录表”后,“监控数据记录表”里面又会多出一条同样的数据?
[/Quote]
嗯,对
找不到是哪的原因
owenxin26 2009-08-03
  • 打赏
  • 举报
回复
你指的是当修改“监控数据记录表”后,“监控数据记录表”里面又会多出一条同样的数据?
roony 2009-08-03
  • 打赏
  • 举报
回复
up

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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