时间:2014-10-17 09:54:45 来源: 复制分享
考虑‘MySQL如何去链接远程SQL’ 这个问题已经考虑了大半月了,这之前一直纠结于想找出类似于我做‘SQL 如何链接 远程MySQL’的那种直接的方法,找到一个合适的接口。但努力了那么久,还是失败了,所以我想到另一个方法去实现相同的结果,当在MySQL中插入一条记录时,远程的SQL会插入一条相同的记录。鉴于之前我已经做出了‘SQL 如何链接 远程MySQL’,我用了两个触发器,一个存储过程,一个作业完成了相同的效果。
(我用一张图来阐述了我的做法)
代码
/*①的代码*/
/*MySQL的触发器写法*/
delimiter//
create trigger insert_mysql_test before insert on Mysql_test
for each row begin
insert into Mysql_tem set tem_id = new test_id , tem_name = new test_name;
/*new后面的id,name是Mysql_test表的字段名*/
end
/*MySQL的触发器写法*/
代码 /*②的代码*/
/*链接的存储过程*/
use kk
go
create procedure select_x
as
insert into sql_tem(x_id,x_name) select * from openquery(GLB, 'select x_id,x_name from Mysql_tem')
delete from sql_tem
delete openquery(GLB, 'SELECT * FROM Mysql_tem')
go
/*链接的存储过程*/
/*③的代码*/
/*建立在sql_tem表上的触发器*/
create trigger tr_insert_tem on sql_tem
for insert
as
insert into sql_test
select * from inserted
go
/*建立在tem表上的触发器*/
<补充>关于那个作业,我用的是sql server2005的可视化做的,它最重要的操作就是定时执行'exec select_x'这个操作。(执行存储过程)
加一个截图给大家看一下,同时在SQL 2000的企业管理器中也可以找到。