1.是的,有N条
2.用连接或子查询 delete from t where t.id in (select id from deleted)

解决方案 »

  1.   

    1、多行
    2、可以:
    delete 另外一个表 from 另外一个表,deleted where deleted.id=另外一个表.id
      

  2.   

    谢谢先!
    关于我的第二个问题,针对insert操作和delete操作,我们可以引用delete表和额insert表,但是若是update操作,如何引用被update过的行呢?
      

  3.   

    1.多个行
      insert 另一个表 select * from inserted
      可以看出
    2.delete 另一个表 from 另一个表,deleted where deleted.id=另外一个表.id
    或 delete from 另一个表 where 另一个表.id in (select id from deleted)
    或 delete from 另一个表 where exists (select 1 from deleted where deleted.id=另一个表.id)
      

  4.   

    update 另一个表 set 另一个表.value=deleted.value from deleted where 另一个表.a=deleted.a
      

  5.   

    楼上有updated表吗?????????????update 另一个表 set 另一个表.value=inserted.value from inserted where 另一个表.id=inserted.id
      

  6.   

    insert时 可以用select  from inserted
    delete时 可以用select  from deleted 看出影响的结果
      

  7.   

    是否这样在update的时候,sqlserver先把这些记录删除,更新之后再插入到表中?
      

  8.   

    Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。
      

  9.   

    update是用两个表:inserted和deleted
    将要修改的记录,先删除,在deleted表中;
    然后再插入修改后的记录,放在inserted表中。
    select * from tablename where id = inserted.id