若改成 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" 的数据源对象。
若改成
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.即使启用分布式事务,也是应用在SQLSERVER和SQLSERVER之间。异构数据库之间,应该是不行的。
所以,楼主就不要这样用了。
建议:触发器中的数据,先INSERT到本地的另外一张表中,再写个JOB,监控此表,把数据同步到MYSQL数据表。
弱弱得问一下JOB是什么?
弱弱得问一下JOB是什么?
SQL SERVER代理服务中,建立的“作业”,英文名“JOB”