CREATE  TRIGGER TRTest1 ON dbo.TABLE1 
FOR update 
AS
set nocount on 
update test1.dbo.table1 set aa=i.aa  from inserted i join test1.dbo.table1 t on i.bb=t.bb

解决方案 »

  1.   

    [AS] table_aliastable_name、view_name 或 rowset_function 的别名,为方便起见而使用,或用于区分自联接或子查询中的表或视图。别名通常是一个缩短了的表名,用于在联接中引用表中的特定列。如果联接中的多个表中有相同名称的列存在,SQL Server 要求必须使用表名或别名来限定列名。(如果定义了别名则不能使用表名)。
      

  2.   

    着急:菜鸟真的不会,手头的资料都是很烂的,例子不详细。
    比如我数据库“aaa",有表单lmc,数据库“bbb”有表单lmc,如何写让数据库bbb
    的lmc表单update,delete记录时,aaa的lmc表单内容也相应变动。亚朝帮个忙吧。多谢。现学来不及了。
      

  3.   

    我用的方法是先delete aaa中的lmc记录,然后将bbb库中的lmc记录增加insert到aaa的lmc中,呵呵,太笨了,谁有更好的方法?
    我的做法如下:
    create trigger autoupdate on [bbb].[dbo].[lmc]
    for update
    as
    delete from [aaa]..[lmc] where [id] in (select [id] from inserted)
    insert into [aaa]..[lmc] select * from inserted
      

  4.   

    在做个删除的触发器
    create trigger deltable on [bbb].[dbo].[lmc]
    for delete
    as delete from [aaa]... where [id] in (select [id] from deleted)
    go
      

  5.   

    buptgj(烟花满天飞)写的好象有个地方错了。在DELETE时应FROM deleted表而不是inserted表。
      

  6.   

    seasstar:
      我写的没有错误,books-online上边指明update=delete+insert.
      就是说update时候,实际上是使用的是虚拟的inserted表,所以我是
    from inserted.
      

  7.   

    create trigger autoupdate on [dbo].[lmc]
    for update
    as
    update [aaa].[dbo].[lmc] set field1=i.field1,field2=i.field2
    from inserted i join [aaa].[dbo].[lmc] l on i.id=l.id
    go--或者
    create trigger autoupdate on [dbo].[lmc]
    for update
    as
    update [aaa].[dbo].[lmc] set field1=i.field1,field2=i.field2
    from inserted i where  i.id=[aaa].[dbo].[lmc].id
    go