首页 新闻 会员 周边

触发器问题,请教达人!

0
悬赏园豆:10 [已解决问题] 解决于 2012-05-16 13:45

表名:dbo.pbCommonTypeDataJYFH

字段:“是否剪样”“是否发完成”“是否记账”sDiff01,sDiff02,sDiff03

         “剪样人”“销售确认人”“财务记账人”sDiff04,sDiff05,sDiff06 

要求:1.在保存一条新数据后,如果“是否剪样”“是否发完成”“是否记账”的值为“是”

            则赋值当前用户名到对应的“剪样人”“销售确认人”“财务记账人”中

         2.在修改数据并保存时,如果“是否剪样”“是否发完成”“是否记账”的值与原来的值

           有不同,更新当前用户名到对应的“剪样人”“销售确认人”“财务记账人”中

小弟园豆有限才180,悬赏10豆,今后还有很多问题。还请包涵!

问题补充:

我的是定制的ERP软件,没有前台编辑能力,只能改SQL!

请问,存储过程要怎么写,编写思路是怎样的?

keyen的主页 keyen | 初学一级 | 园豆:135
提问于:2012-05-08 14:41
< >
分享
最佳答案
0

直接用代码实现你的逻辑。

1.首先获取你要修改的这条记录

2.在保存的时候,判断,如果“是”,则update语句,要更新的字段。

收获园豆:10
jackchain | 初学一级 |园豆:95 | 2012-05-09 12:34

哦,如果是别人开发的系统,不能修改代码的话。只能通过触发器来做了。

if update(那个字段)

begin

       从inserted中取出最新的记录,从Deleted中取出原始记录

       构造自己的update sql

       执行

end

jackchain | 园豆:95 (初学一级) | 2012-05-09 13:43

@jackchain: 

if update(那个字段)

begin

       从inserted中取出最新的记录,从Deleted中取出原始记录 --这里不用把两个记录做对比吗?

                                                                                 --如果对比,要怎么对比?

       构造自己的update sql

       执行

end

keyen | 园豆:135 (初学一级) | 2012-05-12 09:10

@keyen: 直接取出要使用的值就可以了

jackchain | 园豆:95 (初学一级) | 2012-05-12 14:16
其他回答(2)
0

这种逻辑放到业务逻辑层比较好

玉开 | 园豆:8822 (大侠五级) | 2012-05-08 16:55

就是放在程序代码中处理,而不是用触发器。

支持(0) 反对(0) 玉开 | 园豆:8822 (大侠五级) | 2012-05-08 20:26

@玉开: 你好!我的是定制的ERP,不能改程序!只能加SQL语句或在数据库中加代码

支持(0) 反对(0) keyen | 园豆:135 (初学一级) | 2012-05-10 12:24
0

这样的需求最好不好用触发器。

用存储过程来完成。

小材小用 | 园豆:639 (小虾三级) | 2012-05-08 21:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册