--insert 触发器
CREATE TRIGGER  [INSERT_FOR_a1]  ON [a1] 
FOR INSERT 
AS
INSERT  INTO b服务器LinkServer的名字.数据库名.dbo.a1(1,2,3,4,5)
SELECT [1],[2],[3],[4],[5] FROM INSERTED
GO1,2,3,4,5 这些字段的数据类型有text,ntext,image类型的 就会有下面的提示text,ntext,image类型不能在deleted,inserted表请问这样的情况怎么解决 谢谢
    

解决方案 »

  1.   

    用instead of 触发器,没试过。
      

  2.   

    CREATE TRIGGER  [INSERT_FOR_a1]  ON [a1] 
    INSTEAD OF INSERT -- 改触发器类型
    AS
    INSERT [a1] SELECT * FROM insertedINSERT  INTO b服务器LinkServer的名字.数据库名.dbo.a1(1,2,3,4,5)
    SELECT [1],[2],[3],[4],[5] FROM INSERTED
    GO
      

  3.   

    CREATE TRIGGER  [INSERT_FOR_a1]  ON [a1] 
    FOR INSERT 
    AS
    INSERT  INTO b服务器LinkServer的名字.数据库名.dbo.a1(1,2,3,4,5)
    SELECT [1],[2],[3],[4],[5] FROM [a1]
    Where Exists(Select 1 From inserted Where INSERTED.主键=[a1].主键)  
    GO
      

  4.   

    CREATE TRIGGER  [INSERT_FOR_a1]  ON [a1] 
    INSTEAD OF INSERT -- 改触发器类型
    AS
    INSERT [a1] SELECT * FROM insertedINSERT  INTO b服务器LinkServer的名字.数据库名.dbo.a1(1,2,3,4,5)
    SELECT [1],[2],[3],[4],[5] FROM INSERTED
    GO
    用了这种方法 然后在a1表中修改1个字段的值 提示OLEDB provider returned massge:新事务不能登记到指定的事务处理器中OLEDB 错误跟踪SQLOLEDB 无法启动分布式事务处理服务器之间的链接没有问题的 这些错误 是什么原因造成的 谢谢
      

  5.   

    检查msdtc服务是否启动, 如果没有, 则启动它(net start msdtc)
      

  6.   

    谢谢zjcxc(邹建)的回答
    分数以送出