问题描述:
   表A(住院编号,住院费),表B(Myid,住院编号,...,金额)   触发器:
CREATE TRIGGER MyBInsert ON dbo.B 
FOR INSERT
AS
--    更新表A 
  update A
    set 住院费 = 住院费 + b.金额
    from A a, Inserted b 
    where (a.住院编号=b.住院编号)当单条insert语句批量在B表中插入记录(1条以上)时,仅第1条记录的金额可以汇总到A表的“住院费”。
请问大家:
    1. 触发器定义时有没有可选择项强制多条记录批量触发
    2. sql2000中是否可以修改服务器属性,强制多条记录批量触发
    3. 批量触发是否可以,或者说根本就不能批量触发    谢谢!
    
   

解决方案 »

  1.   

    1.看看触发器的参数
    2.2000没有DDL触发器
    3.可以
      

  2.   

    没有强制多条记录批量触发的选项,因为SQL本来就是批量触发的。
    你的运行结果出现问题,是因为SQL触发器有一些特殊之处,你把语句改成如下所示,应该就OK了.CREATE TRIGGER MyBInsert ON dbo.B  
    FOR INSERT
    AS
    -- 更新表A  
      update A
      set 住院费 = 住院费 + b.金额
      from A a, (select 住院编号,sum(金额) as 金额 from Inserted group by 住院编号) b  
      where (a.住院编号=b.住院编号)
      

  3.   

    谢谢3、4楼!
    OK了,刚才看错了!是从inserted中汇总,很完美了!
    再次谢谢大家,请接分