以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  sql触发器为什么不执行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101300)

--  作者:happyft
--  发布时间:2017/5/27 20:13:00
--  sql触发器为什么不执行?
ALTER TRIGGER [dbo].[trin_scllmx]
ON [dbo].[生产领料明细]
AFTER INSE RT
AS
IF @@Rowcount = 0
    RETURN;
BEGIN
    --更新库存数量
    UPDATE 库存表
    SE T 合格数量 = 合格数量 - a.数量
    FROM(inse rted a
        INNER JOIN 生产领料单 d
            ON a.出库单号 = d.出库单号)
        INNER JOIN 库存表 c
            ON a.产品编码 = c.产品编码
               AND c.工序号 = 0
    WHERE c.仓库 = d.仓库;
END;

上面这个代码没有错吧,为什么插入数据后不执行呢,相关的数据不会改变,也没有任何出错提示?
谢谢!

--  作者:有点色
--  发布时间:2017/5/28 10:41:00
--  

加入print看是否进入执行了。

 

print \'--------进入了------------------\'

 


--  作者:HappyFt
--  发布时间:2017/5/28 12:07:00
--  
ALTER TRIGGER [dbo].[trin_scllmx]
ON [dbo].[生产领料明细]
AFTER INSE RT
AS
IF @@Rowcount = 0
    RETURN;
else print  \'--------进入了------------------\' 
BEGIN
    --更新库存数量

但是这个print的结果会显示在哪里找不到,矣?在前台操作表插入数据了,但这个没显示,是不是要手工在sql数据库表中插入数据这个pint才显示啊?

有没有办写在数据库上的提示内容,在前台操作时能弹出来显示呢,就像msgbox()那样可以显示在前台来


--  作者:有点色
--  发布时间:2017/5/28 12:36:00
--  
 单独在数据库那里编写sql语句调试。