inserted这个就象一个表,如果有一条记录时set @ins_time=(select 日期 from inserted)这个不会出错,能运行,但如果有多条记录时,这个就有问题的,不能这样写了.

解决方案 »

  1.   

    CREATE TRIGGER ins_time on a
    INSTEAD OF INSERT
    AS
    BEGIN
      INSERT 表 SELECT convert(varchar(10),日期,120),convert(varchar(10),日期,108)  FROM inserted
    END
      

  2.   

    create table 表 (a int)
    go
    insert 表 values (1)
    go
    CREATE TRIGGER 名 ON 表
    FOR UPDATE
    AS
    select a 更新前被删除的数据 from deleted
    select a 更新后被插入的数据 from inserted
    go
    ------------测试:
    update 表 set a=3
      

  3.   

    --inserted表里放的是每次插入的记录
    create trigger ins_time on a 
    for insert, update
    as
    set nocount on
    update a set 日期=convert(varchar(10),b.日期,120),时间=convert(varchar(10),b.日期,108)
    from inserted b where a.id=b.id