通过SQL Server 2008 访问MySQL(转)
在公司中经常会遇到部署多种数据库环境的情况,对于开发人员来说经常在不同数据库之间转换确实有些繁琐,本篇将介绍从SQL Server 操作MySQL 数据库的方法。
数据库测试环境
1. SQL Server 2008
2. MySQL 5.1.36
Database: Test
Table: TestTable
创建MySQL 测试表
CREATE TABLE `testtable` (
`id` int(11) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL
)
![]()
创建Linked Server
下面来创建一个与MySQL交互的链接(类似Oracle 的DBLink),在SQL Server 管理器中右键Server Objects 目录下的Linked Servers 点击“New Linked Server”:
![]()
Linked server 链接名称
Server Type 选择“Other data source”
Provider 选择“Microsoft OLE DB Provider for ODBC Drivers”
Product name 填写MySQL 主机地址
Provider String 填写 Driver={MySQL ODBC 5.1 Driver};Server=ServerName;Database=myDB;
User=myUserName;Password=myPassword;Option=3;
![]()
也可以通过TSQL 直接创建:
EXEC master.dbo.sp_addlinkedserver
@server = N'MYSQLLINK',
@srvproduct = N'localhost',
@provider = N'MSDASQL',
@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=localhost;
Database=test;User=root;Password=root;Option=3;' EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'MYSQLLINK',
@useself = N'False',
@locallogin = N'localhost',
@rmtuser = N'root',
@rmtpassword = N'root'
创建完成后便会看到下图中的链接:
![]()
操作MySQL 数据库
在SQL Server 中通过OPENQUERY 函数对MySQL 进行操作,该函数包含两个参数:第一个为已创建的链接名称,第二个为SQL 查询,它将返回对Linked Server 的读取或修改操作。如下操作示例:
OPENQUERY ([LinkedServer], 'SELECT * FROM [RemoteTable]')
向TestTable 中插入测试数据:
insert into openquery(mysqllink,'select * from testtable')
select 1,'Peter',30;
查询数据:
select * from openquery(mysqllink,'select * from testtable');
![]()
修改数据:
update openquery(mysqllink,'select * from testtable')
set name='Jone' where id=1;
![]()
删除数据:
delete from openquery(mysqllink,'select * from testtable')
where id=1;
相关参考资料
http://dev.mysql.com/downloads/mirror.php?id=376346
http://www.connectionstrings.com/mysql#p21
通过SQL Server 2008 访问MySQL(转)的更多相关文章
- 通过SQL Server 2008 访问Oracle 10g
原文地址:http://www.cnblogs.com/gnielee/archive/2010/09/07/access-oracle-from-sqlserver.html 之前写过一篇关于SQL ...
- 实现SQL Server 2008 Reporting Services匿名访问报表有两种方法
一.通过修改SQL Server 2008的配置文件,去掉Windows的验证. 1.首先我们找到SQL安装目录下的两个Web.config配置文件,默认安装目录分别是(C:\Program File ...
- 【关于服务器端SQL Server 2008的设置】 使其他客户端机可通过ODBC数据源可访问
服务器系统:Server 2003 数据库:SQL Server 2005 服务器配置:开启服务:server.workstation(这两个服务对于提供局域网共享有很大作用) 关闭防火墙 开启gue ...
- 针对 SQL Server 2008 在Windows Server 2008上的访问配置 Windows 防火墙
现在Windows Server 2008 服务器用的越来越多,2008的防火墙比2003的有了很大的增强,安全性有了更大的提高. 甚至80端口的出站默认都是被关闭的.所以如果在2008Server上 ...
- 【问题&解决】试用版SQL Server 2008 R2 提示评估期已过,数据库不能访问解决办法
因为以前一直是试用版,重启服务器之后,突然数据库不能访问,提示评估期已过,都快吓死了.还好找到了解决办法特copy解决步骤如下: (笔者用的是企业版: R88PF-GMCFT-KM2KR-4R7GB- ...
- SQL Server 2008备份数据库失败,拒绝访问的原因
原文:SQL Server 2008备份数据库失败,拒绝访问的原因 备份数据到特定目录是出现拒绝访问,然后测试备份到C盘根目录正常. 查了下原因: 是因为那个目录没有Authenticated Use ...
- 一次php访问sql server 2008的API接口的采坑
2018年6月21日17:17:09,注意:不是详细文档,新手可能会看不懂 windows下安装 项目是sql server 2008的k3,php连接数据库写的API,因为是买的时候是别人的程序,测 ...
- SQL Server 2008作业失败:无法确定所有者是否有服务器访问权限
转自:http://www.mzwu.com/article.asp?id=3592 下午准备将服务器数据导一份到本地,连上服务器找数据库备份文件发现最后一次备份是7月1日,竟然十几天没生成新备份,查 ...
- SQL Server 2008 R2 根据.asmx访问WebService
.asmx 都是.Net 同系列,所以学习的时候会比较简单. 方法一: 步骤1.在浏览器打开.asmx地址可以到方法列表, 步骤2.点进方法列表会有SOAP调用的案例, 步骤3.SQL Server ...
随机推荐
- 在Delphi中,关于数组名称
动态数组数组名代表的是第一个元素的内存地址. 静态数组名称代表的是数组第一个元素的内存位置, 而不是数组第一个元素的内存地址. 但对于静态数组,在某些情况下编译器可能会自动取数组地址,如: funct ...
- Agile.Net 组件式开发平台 - 平台系统介绍
平台介绍 Agile.Net 组件式开发平台是一款针对企业级产品的开发框架,平台架构基于SOA服务体系,多层组件式架构打造.平台提供企业应用开发所需的诸如ORM.IOC.WCF.EBS.SOA等分布式 ...
- Windows7 下配置添加ASP功能
按照如下顺序添加 1.控制面板-程序-打开或关闭Windows功能 2.Internet信息服务-万维网服务-应用程序开发功能 3.勾选ASP 和ASP.net选项 确定后安装完毕即可支持.
- ios Swift 特性
特性提供了关于声明和类型的更多信息.在Swift中有两类特性,用于修饰声明的以及用于修饰类型的.例如,required特性,当应用于一个类的指定或便利初始化器声明时,表明它的每个子类都必须实现那个初始 ...
- Contoso 大学 - 4 - 创建更加复杂的数据模型
原文 Contoso 大学 - 4 - 创建更加复杂的数据模型 原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using- ...
- Cocos开发中Visual Studio下libcurl库开发环境设置
我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...
- 实例介绍Cocos2d-x物理引擎:碰撞检测
碰撞检测是使用物理引擎的一个重要目的,使用物理引擎可以进行精确的碰撞检测,而且执行的效率也很高.在Cocos2d-x 3.x中使用事件派发机制管理碰撞事件,EventListenerPhysicsCo ...
- presentViewController: 如何不覆盖原先的 viewController界面
PresentViewController 如何不遮挡住原来的viewController界面呢? 可能有时候会遇到这种需求,需要弹出一个功能比较独立的视图实现一些功能,但是却不想单纯添加一个View ...
- NSUserDefaults存储自定义对象
场景是这样的: 现在有一个数组如下,数组中存放着自定义的对象GoodscCategory <__NSArrayM 0x7ffb9c2032b0>( <GoodscCategory: ...
- 客户端javascript笔记
html 中的 onclick访问的是全局作用域