在A表加入一個触發器,當A表增加一記錄時.在B表自動增一筆記錄.現在我在A表增加一記錄時,B表會自動增一筆記錄.
問題:如果批量增加A表記錄時(比方說從其它表導入A表很多記錄), B表只自動增一筆記錄. 這是為什麼?

解决方案 »

  1.   

    CREATE TRIGGER tinsert ON [dbo].[A] 
    FOR INSERT
    AS
    declare  @aa datetime
    declare @bb  varchar(50)
    declare @cc varchar(20)
    declare  @dd datetime
    declare @ee varchar(50)select  @aa=getdate()
    select  @bb=host_name()
    select  @cc=fid from inserted
    select @dd=foriginaldata from inserted
    select @ee='操作類別:增加記錄'
    insert B表  VALUES (@aa,@bb,@cc,@dd,@ee)
      

  2.   

    insert   B表   
        select @aa,@bb,@cc, foriginaldata,@ee from inserted
      

  3.   

    CREATE   TRIGGER   tinsert   ON   [dbo].[A]   
    FOR   INSERT 
    AS 
    insert   B表  select getdate(),host_name(),fid,foriginaldata,'操作類別:增加記錄'
    from inserted
      

  4.   


    select     @aa=getdate() 
    select     @bb=host_name() 
    select     @cc=fid   from   inserted 
    select   @dd=foriginaldata   from   inserted 
    select   @ee='操作類別:增加記錄' 
    insert   B表     VALUES   (@aa,@bb,@cc,@dd,@ee)--------------------
    当有多条记录插入到A表时,上面的语句只能取得最后一天,所以就出现了上面的情况正确的为:insert       B表       
            select   @aa,@bb,@cc,   foriginaldata,@ee   from   inserted