我用的数据库是Sql Server2005,比如有A表和B表,现在我要记录这两个表的操作,比如A表增加了一条数据,那就要记录下表名(A)、主键(ID)、操作类型(add),B表也是需要一样的功能。
是不是要分别建立针对A和B的触发器?
如果有十几个表的话,是不是要建立十几个触发器。

解决方案 »

  1.   

    SQL2005木有好的办法,只能一个个建,2008可以用cdc(change data capture)
      

  2.   


    同, 2008 以下的只能通过触发器来一个一个获取。2008 上可以使用CDC来捕获。但是不能同时捕获操作者相关信息,确实一个遗憾,希望MS能改进。 
      

  3.   

    可以这样:exec('create proc ')
      

  4.   

    也不用一个一表的建,
    从sysobjects中取得表名称,
    构建一游标,拼出建触发器的语法,
    再exec,因为整个要改的就是表名称+字段名称,其它部分是固定的
      

  5.   

    愚见:
    建一个表:  
    create table 记录表
    (表名 ,主键 ,操作类型)在外边程序中控制,当向A表(insert、update、delete)一条数据时,向 记录表插入一条记录..
    加个事务,不然A表操作失败时也记录到了 记录表就哦噢了~~~