SQL Server2000中有表aa,表aa更新增加删除时,怎样才能知道它发生变化?
我只能读出表aa的总金额,不能修改,若超过一定的金额则报警。

解决方案 »

  1.   

    表记录发生变化和限制金额等都可以用触发器实现
    具体实现你可以先看盾SQL SERVER帮助
      

  2.   

    to  cg1120(代码最优化-§新年祝福你,好运伴着你§)
    请你说详细些呀
      

  3.   

    对,使用触发器也是个好办法,不过,需要对SQL熟悉才行
      

  4.   

    触发器就是能监视你对记录的所有操作比如更新、删除记录等
    怎么做触发器,你可以先看看SQLSERVER里自带的帮助
    里面很详细
      

  5.   

    啊,我在DELPHIBBS已经回了的呀?还有问题,那你发邮件给我,我给你改吧,我不要分的哦
      

  6.   

    我的想法是这样的:
    新建一个表SumTable:SumValue(float)
    原表建一个触发器
    CREATE TRIGGER Tr_SumValue ON dbo.aa
    FOR INSERT, UPDATE, DELETE 
    AS
    Delete from SumTable
    Select Sum(Value) into SumTable from aa在你的前台程序中只要判断Select SumValue from SumTable的值即可。
      

  7.   

    哈哈!这是sql的问题!1、用时间戳字段,你一改任何一列他本记录的时间戳就会改变的!
    例:
    declare @ table (a int,b timestamp)
    insert @ values(1,null)
    select * from @
    update @ set a=2
    select * from @2、用触发器CREATE TRIGGER 插入触发器 ON 表
    FOR INSERT
    AS
    insert 日志表 (时间,动作,值) select getDAte(),'插入',* from inserted
    go
    CREATE TRIGGER 删除触发器 ON 表
    FOR delete
    AS
    insert 日志表 (时间,动作,值) select getDAte(),'删除',* from deleted
    goCREATE TRIGGER 修改触发器 ON 表
    FOR update
    AS
    insert 日志表 (时间,动作,值) select getDAte(),'修改前',* from deleted
    insert 日志表 (时间,动作,值) select getDAte(),'修改后',* from inserted
    go
      

  8.   

    mssql有一工具:SQL事件探察器,应对你帮助很大,对表的任意动作他都能跟踪到,还有,你编一个触发器也行的,根据你说的情况,金额应是可变的,你可以隔一段时间取金额的值,可以知道表有没有发生改变了
      

  9.   

    用触发器 如 pengdali(大力) 所说的。
      

  10.   

    >>可以隔一段时间取金额的值,可以知道表有没有发生改变了.
    比较占资源。
    満足条件用什么方法比较好?
    触发器怎样判断呢?
      

  11.   

    create trigger trgcheck on aa
    for update,insert,delete
    as
      declare @iCount int
      declare @msg varchar(8000)
      set @msg='金额超过某值!'
      if update(金额)
     begin
       if @@rowcount=0   ---数据没有变动
        return
      else begin
              select @iCount=sum(金额) from aa
              if @iCount>某金额 
               raiserror @msg,16,-1 
            end    
     end 
    这个我没有测试,大概是这样,如你想更详细的,自己看书