【问题标题】:migrating mysql to sql server 2008将 mysql 迁移到 sql server 2008
【发布时间】:2011-03-31 19:41:26
【问题描述】:

我有一个简单的 mysql 数据库。它有 3 张桌子。

这里是他们的创建语句:

CREATE DATABASE `qcvalues` /*!40100 DEFAULT CHARACTER SET latin1 */

CREATE TABLE `batchinfo` (
  `rowid` int(11) NOT NULL AUTO_INCREMENT,
  `datapath` mediumtext,
  `analysistime` varchar(50) DEFAULT NULL,
  `reporttime` varchar(50) DEFAULT NULL,
  `lastcalib` varchar(50) DEFAULT NULL,
  `analystname` varchar(150) DEFAULT NULL,
  `reportname` varchar(150) DEFAULT NULL,
  `batchstate` varchar(150) DEFAULT NULL,
  `instrument` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`rowid`),
  UNIQUE KEY `rowid_UNIQUE` (`rowid`)
) ENGINE=InnoDB AUTO_INCREMENT=15771 DEFAULT CHARSET=latin1


CREATE TABLE `calibration` (
  `rid` int(11) NOT NULL AUTO_INCREMENT,
  `filename` varchar(100) DEFAULT NULL,
  `qcname` varchar(50) DEFAULT NULL,
  `compound` varchar(150) DEFAULT NULL,
  `response` varchar(50) DEFAULT NULL,
  `isid` varchar(150) DEFAULT NULL,
  `isidresp` varchar(150) DEFAULT NULL,
  `finalconc` varchar(50) DEFAULT NULL,
  `rowid` int(11) DEFAULT NULL,
  PRIMARY KEY (`rid`),
  UNIQUE KEY `rid_UNIQUE` (`rid`)
) ENGINE=InnoDB AUTO_INCREMENT=708947 DEFAULT CHARSET=latin1



CREATE TABLE  `qcvalues`.`qvalues` (
  `rid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `compound` varchar(50) DEFAULT NULL,
  `rt` varchar(50) DEFAULT NULL,
  `response` varchar(50) DEFAULT NULL,
  `finalConc` varchar(50) DEFAULT NULL,
  `qvalue` varchar(50) DEFAULT NULL,
  `rowid` int(11) DEFAULT NULL,
  PRIMARY KEY (`rid`),
  UNIQUE KEY `rid_UNIQUE` (`rid`)
) ENGINE=InnoDB AUTO_INCREMENT=463066 DEFAULT CHARSET=latin1;

我正在从 excel 写入这个数据库:

Set cn = New ADODB.Connection
    cn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
        "SERVER=kame1;" & _
        "DATABASE=qcvalues;" & _
        "USER=root;" & _
        "PASSWORD=password;" & _
        "Option=3"
    'lets get the batch info
    '
    ' open a recordset
    Set rs = New ADODB.Recordset

将整个 mysql DB 迁移到 sql server 的最简单方法是什么?

【问题讨论】:

  • 您可以将链接服务器实例添加到 MySQL 实例,在 SQL Server 上创建数据库,然后使用 SELECT INTO 语法,因为它会创建一个表(前提是它不存在...

标签: sql mysql sql-server excel vba


【解决方案1】:

微软最近刚刚宣布了一个支持从 MySql 迁移到 SQL Server 的迁移工具:

Microsoft announces SQL Server Migration Assistant for MySQL

我没看过,但可能值得一试;这是该工具的下载页面(带有典型的 MS 风格的产品名称 ;-):

Microsoft SQL Server Migration Assistant for MySQL v1.0

【讨论】:

    【解决方案2】:

    可能在 SQL Server 中设置一个空数据库,然后在 Management Studio 中使用导入向导导入数据,作为副作用,可以选择生成 CREATE TABLE 语句。

    详情请见the MS documentation on the Export/Import Wizard

    【讨论】:

      【解决方案3】:

      如果您正在寻找与您发布的内容相匹配的 SQL 语句:

      CREATE DATABASE qcvalues 
      
      CREATE TABLE batchinfo (
        rowid int IDENTITY(1,1) NOT NULL,
        datapath varchar(max),
        analysistime varchar(50) DEFAULT NULL,
        reporttime varchar(50) DEFAULT NULL,
        lastcalib varchar(50) DEFAULT NULL,
        analystname varchar(150) DEFAULT NULL,
        reportname varchar(150) DEFAULT NULL,
        batchstate varchar(150) DEFAULT NULL,
        instrument varchar(20) DEFAULT NULL ,
      
        CONSTRAINT [PK_Batch] PRIMARY KEY CLUSTERED ([rowid] ASC)
      )
      
      • 需要删除引号
      • 主键语句不同
      • 自增值不同

      冲洗 + 重复你的其他两张桌子,你很好。

      那么你需要得到一个new connection string from Excel suitable for SQL Server

      【讨论】:

        猜你喜欢
        • 2011-06-23
        • 2012-07-22
        • 2012-07-25
        • 1970-01-01
        • 2013-02-08
        • 2020-04-27
        • 2010-12-18
        • 2011-06-09
        相关资源
        最近更新 更多