应用场景:企业内即有mssql数据库也有mysql数据库
应用价值:提高了数据库管理的方便性,无需两个数据来回切换
操作步骤:
1、在mssql数据库所在的电脑中安装mysql的odbc驱动,官方的有mysql odbc 3.51和mysql odbc 5.1版的,下载地址;http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32
2、装完后打开管理工具->数据源->系统DSN->添加数据源,选择您安装的驱动,输入用户名,密码,数据库(注:mysql的登录认证方式默认是IP+用户名+密码,如果您的mysql和mssql不在同一台机上,请在mysql上先添加一个用户,指定IP为mssql的IP,这点很关键,不然你是无法测试通过的)
3、odbc测试通过后,请打开SQL2000查询分析器或SQL2005管理工具,输入以下代码
--添加链接服务器和登录用户
--注@server是ODBC中的系统数据源名称,我这里起名叫OA;@provider='MSDASQL'这个不可以修改
EXEC sp_addlinkedserver @server='OA',@srvproduct='OA',@provider='MSDASQL',@datasrc='OA'
GO
--@rmtuser='longin1' mysql的登记名 ,@rmtpassword='123456' 登录密码
EXEC sp_addlinkedsrvlogin @rmtsrvname='OA',@useself='false',@locallogin='sa',@rmtuser='longin1',@rmtpassword='123456'
go
4、对mysql 操作
--查询用户
select * from openquery(OA,'select * from sms limit 100')
--INSERT 示例
INSERT OPENQUERY (OA, 'SELECT title, content FROM msgs')
VALUES ('title', 'content')
--UPDATE 示例
UPDATE OPENQUERY (OA, 'SELECT title, content FROM msgs WHERE id=1')
SET title = 'newTitle', content = 'newContent'
--DELETE 示例
DELETE OPENQUERY (OA, 'SELECT id FROM msgs WHERE id=1');
/*
OPENQUERY 不接受参数变量,也就是说:DELETE OPENQUERY (linked_server, 'SELECT id FROM msgs WHERE id=' + @id); 是不正确的,但可以这样做:DELETE OPENQUERY (linked_server, 'SELECT id FROM msgs') WHERE id=@id);
*/
5、删除链接服务器
sp_dropserver OA,'droplogins'
-----
本人对以上操作已在实际使用中,如有问题可回复一起交流! |