第二步,按下面的sql脚本来执行
-- 查询已有的链接服务器
exec sp_linkedservers;
-- 脚本方式
EXEC sp_addlinkedserver
@server='MysqLTest',
@srvproduct = 'zerolone',
@provider = 'MSDAsql',
@datasrc = NULL,
@location = null,
@provstr = 'DRIVER={MysqL ODBC 5.1 Driver};SERVER=127.0.0.1;DATABASE=zerolone;UID=root;PORT=3306;',
@catalog = NULL
go
EXEC sp_addlinkedsrvlogin
@rmtsrvname='MysqLTest',
@useself='false',
@rmtuser='root',
@rmtpassword='123456';
go
SELECT * FROM OPENQUERY (PCTMysqL2,'select * from monolithpro_cate' )
INSERT OPENQUERY (PCTMysqL2,'SELECT id,parentid,level,title FROM monolithpro_cate')
VALUES ('','0','zhangzongqi');
UPDATE OPENQUERY (PCTMysqL2,'SELECT parentid,title FROM monolithpro_cate WHERE id = 320')
SET parentid = '2',LEVEL=3,title=title+'pct';
DELETE OPENQUERY (PCTMysqL2,'SELECT id FROM monolithpro_cate WHERE id = 316');
最后,好了可以实现在sqlserver下,添删改MysqL里的数据了。
方法二:
在MSsql SERVER2005后,提供了链接服务器。利用它可以对异类数据库和MSsql进行交互,使用起来非常方便。操作步骤如下:
1:创建MysqL数据库的ODBC数据源,名称为CPC,选择一个默认的数据库。
-- 创建链接服务器 EXEC sp_addlinkedserver@server='MysqLTest',@srvproduct@provider'MSDAsql'@datasrc'cpc' GO-- 创建或更新 sql Server 本地实例上的登录名与远程服务 器中安全帐户之间的映射。-- 下面这个也必须加,否则使用sa登陆mssql时无法访问链接服务器。 EXEC sp_addlinkedsrvlogin @rmtsrvname@useself'false'@locallogin'sa'@rmtuser'cpc'@rmtpassword'123' go --参数解释:@rmtsrvname 链接服务器名
-- @locallogin本地登陆账号,@rmtuser MysqL (远程)链接服务器用户名,@rmtpassword (远程)链接服务器密码-- 把sql SERVER里的TT表的记录插入到MysqL的T1表里,这这里也可以插入具体值。 INSERTOPENQUERY(MysqLTest'select * from t1')select*fromTT; values(99);-- 对T1表进行UPDATE操作 UPDATEOPENQUERY'select value from t1'setvalue=value+100;-- 对T1表进行DELETE 操作,不明白为什么一次只能删除一条, DELETEOPENQUERY'SELECT * FROM t1 WHERE hour = 99'; 'SELECT * FROM t1 ';-- DELETE OPENQUERY (MysqLTest,'SELECT * FROM t1 WHERE hour > 2'); --这样是不行的,报错-- 对T1表进行查询操作 fromopenquery;-- 把MysqL的T1表的记录写回到MSsqlinsertintoTT; go-- 释放掉链接服务 EXEC sp_dropserver'droplogins' go