zoukankan      html  css  js  c++  java
  • oracle表执行更新操作的时候,那些字段被更新了

    问题要求:每次表执行更新操作的时候,要知道是那些字段被更新了?

    解决办法:1、在表上建立触发器,先取得表中有那些字段,可以执行一下语句:

                       ORACLE:

                          SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID;

                           或

                          SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID;

                      注意:表明要区分大小写。

                       SQLSERVER:

                            select name from syscolumns where id=object_id('表名');

                            或

                           select count(*) from syscolumns where id=object_id('表名');

                       2、循环字段,看看那些字段被更新了。

                             循环用for,判断那些字段被更新了,用updating(字段名);

                       3、触发器完整代码如下

                       CREATE OR REPLACE TRIGGER TB_TASK_TRGGER
                       AFTER  UPDATE
                       ON TB_TASK
                       REFERENCING NEW AS New OLD AS Old
                       FOR EACH ROW
                       DECLARE
                       vrupdate varchar2(100);
                     BEGIN
                     vrupdate:='';
                     FOR TEMPCOLUME IN (SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TB_TASK' ORDER BY COLUMN_ID)
                     LOOP
                         IF UPDATING(TEMPCOLUME.COLUMN_NAME)
                              THEN
                              dbms_output.put_line(TEMPCOLUME.COLUMN_NAME);
                               vrupdate:=vrupdate || ',';
                          END IF;
                     END LOOP;
                      UPDATE USERLIST SET duty=vrupdate where userid='1000000386';
                     EXCEPTION
                        WHEN OTHERS
                              THEN
         
                         RAISE;
                    END;

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    WCF – System.ServiceModel.FaultException
    SSB – Connection handshake failed
    JQuery语法总结和注意事项
    删除指定目录及其子目录和文件
    Windows 7中还不能通过“HyperV管理器”连接HyperV Server 2008 R2服务器解决
    tomcat虚拟目录映射网络共享目录的问题
    Creating a Virtual Directory with a UNC Path (IIS 6.0)
    百度地图api根据地区名称反查其经纬度的实例
    远程管理server core上的hyperv
    ios5中使用Reachability的问题
  • 原文地址:https://www.cnblogs.com/jijm123/p/15261871.html
Copyright © 2011-2022 走看看