SQL表中建立触发器后,此表无法插入数据了 5
小弟我在一个表B中建立触发器后,这张表B无法插入数据了,此表中的数据是由表A中数据每小时的平均值ALTERtrigger[dbo].[A2]on[dbo].[Table_...
小弟我在一个表B中建立触发器后,这张表B无法插入数据了,此表中的数据是由表A中数据每小时的平均值 ALTER trigger [dbo].[A2] on [dbo].[Table_A] after insert as begin insert into Table_B(FlowIn_B,FlowOut_B,PH_B,SS_B,CL_B,COD_B,Time_B) SELECT FlowIn*1.0/FCount AS FlowIn_B,FlowOut*1.0/FCount AS FlowOut_B,PH*1.0/FCount AS PH_B, SS*1.0/FCount AS SS_B,CL*1.0/FCount AS CL_B,COD*1.0/FCount AS COD_B,Time_B FROM(SELECT SUM(FlowIn)AS FlowIn,SUM(FlowOut)AS FlowOut,SUM(PH)AS PH,SUM(SS)AS SS,SUM(CL)AS CL,SUM(COD)AS COD, CONVERT(char(10),Time_A,121)+' '+LTRIM(DATEPART(hour,Time_A))+':00:00' AS Time_B,COUNT(*)AS FCount FROM Table_A GROUP BY CONVERT(char(10),Time_A,121),DATEPART(HOUR,Time_A)) AS T endALTER trigger [dbo].[B1] on [dbo].[Table_B]instead of insertasbeginset nocount onif (not exists(select B.Time_B from Table_B B, inserted I where B.Time_B = I.Time_B)) insert into Table_B (Time_B,FlowIn_B,FlowOut_B,PH_B,SS_B,CL_B,COD_B) select Time_B,FlowIn_B,FlowOut_B,PH_B,SS_B,CL_B,COD_B from insertedelse update Table_B SET Time_B =I.Time_B, FlowIn_B = I.FlowIn_B, FlowOut_B = I.FlowOut_B, PH_B = I.PH_B, SS_B = I.SS_B, CL_B = I.CL_B, COD_B = I.COD_B from Table_B B, inserted I where B.Time_B = I.Time_Bend两段触发器的如上,谢谢啊
上图吧,请问我就是想着将表A的每个小时的平均值插入到表B中,而且不希望有重复 展开
上图吧,请问我就是想着将表A的每个小时的平均值插入到表B中,而且不希望有重复 展开
展开全部
你的触发器是完成什么功能的?
更多追问追答
追问
在表B中插入数据时检查表B中是否已经存在此数据,如果存在就update,如果不存在就插入
追答
那是不是你的判断语句有问题?导致你检查到的是数据存在,单实际不存在或者存在只是修改了,导致新数据进不来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
兄弟,你的SQL格式能不能,优化一下,眼睛都花了
更多追问追答
追问
已上图,求赐教
追答
将触发器中的SQL语句,单独放在SQL窗口中,看运行是否正确?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是写的什么乱七八糟的东西,连回车都没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
触发器有问题,执行错误就回滚了,自己好好查查吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询