• 通过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

  • 相关阅读:
    luogu P3704 [SDOI2017]数字表格
    「雅礼集训 2018 Day4」Magic(分治NTT)
    「清华集训 2017」小 Y 和恐怖的奴隶主
    [WC2019]数树(树形dp+多项式exp)
    「FJWC2020Day5-zzq」lg (容斥)
    BoundedOptimization TopCoder
    MapGuessing TopCoder
    线性递推(Berlekamp-Massey 算法)
    杜教筛小记
    「余姚中学 2019 联测 Day 6」解码
  • 原文地址:https://www.cnblogs.com/sandea/p/3925229.html
Copyright © 2020-2023  润新知