在sqlserver下增加MYSQL的链接服务…

在sqlserver下增加MYSQL的链接服务器
首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ODBC 5.1 Driver}

 

第二步,按下面的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','0','zhangzongqi');

UPDATE OPENQUERY (PCTMYSQL2, 'SELECT parentid,level,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里的数据了。

原文地址:http://www.cnblogs.com/pctzhang/archive/2010/07/06/1772120.html

 

方法二:

在MSSQL SERVER2005后,提供了链接服务器。利用它可以对异类数据库和MSSQL进行交互,使用起来非常方便。操作步骤如下:
1:创建MYSQL数据库的ODBC数据源,名称为CPC,选择一个默认的数据库。
如何配置ODBC数据源请看这里: http://wenku.baidu.com/view/552afb6aaf1ffc4ffe47ac11.html
2:SQL代码如下
 
 

-- 创建链接服务器

EXEC sp_addlinkedserver @server ='MySQLTest', @srvproduct='MySQL',@provider ='MSDASQL', @datasrc ='cpc'
GO

-- 创建或更新 SQL Server 本地实例上的登录名与远程服务 器中安全帐户之间的映射。

-- 下面这个也必须加,否则使用sa登陆mssql时无法访问链接服务器。
EXEC sp_addlinkedsrvlogin @rmtsrvname='MySQLTest',@useself='false',@locallogin='sa',@rmtuser='cpc',@rmtpassword='123'
go
--参数解释:@rmtsrvname 链接服务器名

-- @locallogin本地登陆账号,@rmtuser mysql (远程)链接服务器用户名 ,@rmtpassword (远程)链接服务器密码
-- 把SQL SERVER里的TT表的记录插入到MYSQL的T1表里,这这里也可以插入具体值。

 INSERT OPENQUERY(MySQLTest,'select * from t1') select * from TT;
 INSERT OPENQUERY(MySQLTest,'select * from t1') values (99,99,99);
 
 
-- 对T1表进行UPDATE操作

 UPDATE OPENQUERY(MySQLTest,'select value from t1') set value=value +100;
 
 
-- 对T1表进行DELETE 操作,不明白为什么一次只能删除一条,

 DELETE OPENQUERY (MySQLTest, 'SELECT * FROM t1 WHERE hour = 99');
  DELETE OPENQUERY (MySQLTest, 'SELECT * FROM t1 ');
 
 -- DELETE OPENQUERY (MySQLTest, 'SELECT * FROM t1 WHERE hour > 2'); --这样是不行的,报错

 

 
-- 对T1表进行查询操作

 select * from openquery(MySQLTest,'select * from t1');
 
 -- 把MYSQL的T1表的记录写回到MSSQL

 insert into TT select * from openquery(MySQLTest,'select * from t1');
go

-- 释放掉链接服务

EXEC sp_dropserver 'MySQLTest','droplogins'
go
 

http://de.cel.blog.163.com/blog/static/51451236201133011422724/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值