sql server 没有行级触发

解决方案 »

  1.   

    没有行级触发,你可以使用多记录语句如同步两个不同数据库的两个表:CREATE TRIGGER 名1 ON dbo.tabMain
    FOR INSERT
    AS
    insert db2..tabSlave select * from inserted
    goCREATE TRIGGER 名2 ON dbo.tabMain
    FOR update
    AS
    update db2..tabSlave set 列=aa.列 from inserted aa where aa.编号=db2..tabSlave.编号
    goCREATE TRIGGER 名3 ON dbo.tabMain
    FOR delete
    AS
    delete db2..tabSlave where 编号 in (select 编号 from deleted)
    go
      

  2.   

    上楼的方法只能保证两个表的同步更新。但现在我的急需就是: 在执行update 学生 set 成绩=0 的过程中,系统每自动把一个学生的成绩更改为0,
    就执行一次触发器。 有5000多个学生,不可能都用上楼的方法去手工修改学生表的每一条记录吧?能不能用循环?
      

  3.   

    用游标
    Declare @关键字 类型
    Declare Cu_A Cursor for Select 关键字 from  学生
    Open Cu_A
    Fetch Cu_A into @关键字 
    while @@FETCH_STATUS=0
    begin
      UpDate 学生 Set 成绩=0 where 关键字=@关键字
      Fetch Cu_A into @关键字 
    end
    Close CU_A
    Deallocate Cu_A
      

  4.   

    SQL目前还不支持.写出你最主要的目的是什么?看能否通过其他方法来解决.
      

  5.   

    非常感谢97866(weiLuang) 
    100分就全归你了再次表示感谢, 帮了我的大忙。
      

  6.   

    这个游标完全可以用:update db2..tabSlave set 列=aa.列 from inserted aa where aa.编号=db2..tabSlave.编号
    一句搞定。