MSDASQL" 无法启动分布式事务configure MSDTC first. Read this article:http://support.microsoft.com/kb/2027550/zh-cn

解决方案 »

  1.   


    若改成
    alter trigger mysqlTest_1 on [t_1mysql]
    for insert,update
    as
    declare @var1 varchar(max),@var2 varchar(max),@txt nvarchar(max)
    select @var1=F1 from inserted
    set @txt=
    'insert into OPENROWSET(
     ''MSDASQL'',
     ''DRIVER={MySQL ODBC 5.1 Driver};
     SERVER=100.100.100.1;
     PORT=3306;DATABASE=wpf;
     USER=root;PASSWORD=w001;
     STMT=set names gb2312;
     OPTION=2049'',''select * from tAbc;''
     )
    select 0,''admin'',''admin'',''0'','''+isnull(@var1,'')+''',''2013-08-05 15:00:26'',''1'',''0'',''0'','''','''','''',''0'',''0'''
     
    exec  sp_executesql @txt
    则提示错误
    链接服务器"(null)"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[MySQL][ODBC 5.1 Driver]Host 'dataserver' is not allowed to connect to this MySQL server"。
    消息 7303,级别 16,状态 1,第 1 行
    无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MSDASQL" 的数据源对象。
      

  2.   

    #1.由于命令A和它所触发的触发器T中的代码是同一个事务,要么都成功,要么都失败。但是你用到了链接服务器,所以就要启动分布式事务,才可以正常执行。
    #2.即使启用分布式事务,也是应用在SQLSERVER和SQLSERVER之间。异构数据库之间,应该是不行的。
    所以,楼主就不要这样用了。
    建议:触发器中的数据,先INSERT到本地的另外一张表中,再写个JOB,监控此表,把数据同步到MYSQL数据表。
      

  3.   


    弱弱得问一下JOB是什么?
      

  4.   


    弱弱得问一下JOB是什么?
    SQL SERVER代理服务中,建立的“作业”,英文名“JOB”
      

  5.   

    楼主大牛啊 求sqlserver触发器往mysql插入数据的程序啊