通过SQL Server操作MySQL的步骤和方法

在多种数据库环境下,经常会遇见在不同数据库之间转换数据和互相进行操作的情况。以下简要介绍下用SQL Server操作MySQL的步骤和方法。

1 操作前的准备

1.1 安装MySQL驱动

想要在SQL Server中操作MySQL,首先要在SQL Server所在的服务器上安装MySQL的驱动。MySQL的驱动安装包在MySQL的官网上可以下载到,我下载到的安装包名为:mysql-connector-odbc-5.1.8-winx64,适用于64位的Windows服务器。双击安装包,直接[next]即可安装成功。安装成功后,在运行中输入[odbcad32.exe]打开[ODBC数据源管理器],点击[驱动程序]选项,可看到[MySQL ODBC 5.1 Driver]已安装成功。

1.2 建立ODBC数据源

安装好MySQL的驱动后就可以在SQL Server所在的服务器上建立指向MySQL服务器的ODBC数据源。

在[ODBC数据源管理器]中选择[系统 DSN]选项卡,点击[添加]按钮。

选择[MySQL ODBC 5.1 Driver],点击[完成]。

在弹出的配置框中填写数据源名、MySQL服务器IP、端口、用户名和密码,点击[ok],ODBC数据源创建成功。

1.3 建立链接服务器

建立链接服务器有两种方式,可以通过SQL Server Management Studio中的向导建立,也可以直接使用SQL语句建立。

1.3.1 使用向导建立链接服务器

在SQL Server Management Studio中连接上SQL Server,然后在[服务器对象]->[链接服务器]上点击右键,选择[新建连接服务器(N)…]。

在[链接服务器]框中填写自定义的链接服务器名称,[服务器类型]选择[其他数据源],[访问接口]选择”Microsoft OLE DB Provider for ODBC Drivers”,[产品名称]跟链接服务器名称填写成一样的,[数据源]填写刚才创建的ODBC数据源,点击[确定],链接服务器创建成功。

其实,也可以不建立ODBC数据源,直接建立链接服务器的,只要把[数据源]留空,而在[访问接口字符串]中填写链接字符串

“Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;”即可。如下图:

1.3.2 使用SQL语句创建链接服务器

可以使用以下SQL语句创建链接服务器,其中使用了ODBC数据源:

EXEC master.dbo.sp_addlinkedserver

@server = N'TestMySQL', --链接服务器名

@srvproduct = N'TestMySQL', --产品名称

@provider = N'MSDASQL', --访问接口

@datasrc = N'TestServer' --数据源名称

 

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

 

也可以使用以下SQL语句创建链接服务器,其中没有使用ODBC数据源,使用的是访问接口字符串:

EXEC master.dbo.sp_addlinkedserver

@server = N'TestMySQL', --链接服务器名

@srvproduct = N'TestMySQL', --产品名称

@provider = N'MSDASQL', --访问接口

@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;' --访问接口字符串

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

2 通过SQL Server操作MySQL

MySQL数据库test 中的数据表TestTable的结构如下:

 

操作该表的方法如下:

2.1 查询MySQL中的数据

select * from openquery(TestMySQL,'select * from test.TestTable');

2.2 向MySQL表中插入数据

insert into openquery(TestMySQL,'select * from test.TestTable')

select 1,'TestName';

2.3 删除MySQL表中的数据

delete from openquery(TestMySQL,'select * from test.TestTable');

2.4 修改MySQL表中的数据

update openquery(TestMySQL,'select * from test.TestTable')

set TestName='ABCDE' where TestID=1;

 

摘自 http://blog.csdn.net/yongsheng0550/article/details/6598252

转载于:https://www.cnblogs.com/xd502djj/archive/2013/05/28/3104191.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 新增mysql用户_Ubuntu中给mysql添加新用户并分配权限

一.Ubuntu下启动mysql方法:/etc/init.d/sudo mysqld二.用户添加bingt;mysql -u rootmysqlgt; grant 权限1,权限2,...权限n on一.Ubuntu下启动mysql方法:/etc/init.d/sudo mysqld二.用户添加bin>mysql -u rootmysql> grant 权限1,权限2,...权限n on…

ABP Framework 5.0 RC.1 新特性和变更说明

.Net 6.0 发布之后,ABP Framework 也在第一时间进行了升级,并在一个多星期后(2021-11-16)发布了 5.0 RC.1 ,新功能和重要变更基本已经确定。5.0版本新特性5.0版本新特性列表:•静态 C# 和 JavaScript 客户端…

技术成长的困扰

学习知识的来源都是微信公众号、微博、博客,太碎片化,造成的结果是没有自己的知识体系,不能从整个知识结构层面去看待问题。转载于:https://www.cnblogs.com/samniu/p/5147191.html

mysql分页原理和sqlserver里面序列的用法

mysql使用经验 1.比如分页 select * from table limit 6 和select * from table limit 0,6 等价select * from table limit 5,10; 一般前面的5放的是 漂移 后面的10放的是 一页多少行 拿到数据库 table里面的数据是 第6条到15条 42.121.56.21sqlserver里面序列的用…

土木工程到底有多惨?哭了哭了......

1 那我要去女寝当宿管!(素材来源网络,侵删)▼2 别说了快哭了▼3 今夜我们都是尾款人▼4 童叟无欺,与图片完全一致▼5 好样的,兄弟!▼6 土木工程有多惨?(素材来源网络…

基于ip tunnel连接不同三个不同网络的×××

就以公司的环境来测试: 局域网网段为192.168.0.0/24 公司linux网关服务址器地绑定两块网卡 内网为192.168.0.3(作为局域网的网关)公网IP地址为:111.111.111.111 机房内网网段为10.10.0.0/16 一台服务器绑有两块网卡 内网地址…

Easy UI中dategrid的getSelections方法只能获取一个id的解决办法

解决方案:检查idField属性值是否与json数据中的id相同(区分大小写) 实在不行就 去掉 idField属性 也可以解决问题 具体效果请看图: 转载于:https://www.cnblogs.com/hanfeng1949/archive/2013/05/28/3104288.html

java合并list_怎么把两个list合并

第二步骤:list添加set集合1、在实际使用中addAll方法也可以将set集合中的内容添加到list中2、实际代码如下所示:import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class ListTest {public stati…

mybatis和hibernate的对比总结

mybatis和hibernate 第一步, 首先让我们对mybatis和hibernate对比了解下 1、 Hibernate :Hibernate 是当前非常流行的ORM框架,对数据库结构提供了较为完整的封装,都是为了简化Dao层的操作。Mybatis:Mybatis同…

.NET 6新特性试用 | Controller支持IAsyncDisposable

前言在.NET中,拥有非托管资源的类通常会实现IDisposable接口,以提供一种同步释放非托管资源的机制。但是,在某些情况下,需要提供一种异步机制来释放非托管资源,这时候可以实现IAsyncDisposable接口。在实现此接口后&am…

ngnix之rewrite

2019独角兽企业重金招聘Python工程师标准>>> REWITE重写[rootlocalhost nginx]# cd conf[rootlocalhost conf]# lsfastcgi.conf koi-win scgi_paramsfastcgi.conf.default mime.types scgi_params.defaultfastcgi_params …

【转】服务器维护工程师悲惨的一个星期

2012.5.11 17点40分,接到**科技部的电话,告诉我IBMX346的服务器同时坏了2块SCSI146G硬盘,现在系统进不去了.问我周六周日能否去修复,和我的领导沟通后明确要周一才能拿到配件. 周一11点才拿到2块SCSI 146G硬盘,匆忙赶去该行,还好不要数据恢复,估计不是很重要的业务,吃完中饭之后…

清华博士生放弃科研,跑去当中学教师,值得吗?

全世界只有3.14 % 的人关注了爆炸吧知识本文来源:科学网博客 作者:程代展原清华大学程代展教授数年前发表博文《昨夜无眠,为了一个学生》,叙述一个亲传徒弟转行的事情。该文曾激起对科研有兴趣的网友的关注,也引发了人…

6、基本查询操作

在数据库的操作中,开发人员或者用户为了取得数据记录,需要检索数据表中的信息。在SQL语句中,检索数据记录是通过SELECT语句来完成的。SELECT语句可以检索数据表或者视图中的数据,并将查询出来的数据以结果集的形式显示出来。 1.查…

java web容器_Java Web容器安全

这里的Java Web容器特指Tomcat,Tomcat依然是最流行的Java Web容器,你大爷还是你大爷。本文并不涉及业务层面上的安全控制,只针对Tomcat自身所支持的相关安全控制功能与特性。首先看一下Web容器的四个基本安全特性验证 Authentication资源访问…

C# 中如何一次 catch 多个异常?

咨询区 Michael Stum:在项目开发中当抛出异常时,我会简单的用 System.Exception,但这种会捕获所有的异常,我不希望大一统,我只想捕获我预知的几个异常,然后在这里处理一些特定的业务逻辑。目前我只能这么实…

堆和堆排序

在讨论「堆排序」之前&#xff0c;先复习一下「选择排序」。 void SelectionSort(int a[], size_t n) {for (size_t i 0; i < n; i) {// 在剩余元素中找出最小的一个&#xff0c;然后与 a[i] 交换。size_t k i;for (size_t j i1; j < n; j) {if (a[j] < a[k]) {k …

Android之二维码生成和识别

二维码 1、ZXing库介绍 这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC…

得罪前女友到底有多可怕?

1 多带一支笔到底有多重要&#xff08;via&#xff1a;100天用泰语撩到小哥哥&#xff09;▼2 专门为跪键盘而生&#xff08;via&#xff1a;in外设&#xff09;▼3 当表情包不再模糊▼4 新娘&#xff1a;他渣你&#xff0c;你干啥子整我&#xff01;&#xff01;&#xff0…

Asp.NET中如何一次性下载多个文件

在ASP.NET中&#xff0c;我们可以很方便的下载单个文件&#xff0c;当需要一次性下载多个文件的时候&#xff0c;如果提示用户一次一次保存的话&#xff0c;会导致用户体验特别的不好。我这里找到一种比较合理的解决方案&#xff0c;就是先把要下载的所有文件打包压缩到成一个文…