将 SQL Server 数据库转换为 MySQL

Posted

技术标签:

【中文标题】将 SQL Server 数据库转换为 MySQL【英文标题】:Convert SQL Server database to MySQL 【发布时间】:2011-03-14 03:30:18 【问题描述】:

我的专用服务器上有一个 SQL Server 2008 Express 上的应用程序数据库。这对我的网络应用程序来说还不够。

是否有任何好的免费转换工具可以让我将当前的 SQL Server 数据库转换为我服务器上的 mysql。 我的网络应用程序是否也能正常工作?

【问题讨论】:

我们中的任何人怎么可能用所提供的信息回答最后一个问题? 这取决于应用程序是否使用正确的标准 sql。通常 SQL Server 应用程序不会正确引用列名等,这可能会导致与 mysql 关键字冲突。在这种情况下,您可能会遇到问题。 这类问题通常需要编程解决方案,因此最好移至 Stack Overflow。不管它是否被感动,缺乏细节使得正确回答即使不是不可能也很困难。 【参考方案1】:

问题中没有足够的信息,就目前而言,无法真正解决有关网络应用程序是否会以相同方式工作的许多问题。

easy 部分将把模式和数据移植到另一个 RDBMS。 SQL Server 有一组很棒的Generate Scripts 命令来生成CREATE TABLE 语句。您还可以通过 SQL Management Studio 为您的数据创建 INSERT 语句。

迁移应用程序时会遇到挑战。

什么是数据访问策略?是所有 ADO.NET 准备/构建语句,还是存储过程?也许是 LINQ to SQL? 内的 SQL 语句:它们在多大程度上符合 ANSI 标准,SQL 对 TSQL 特定关键字的依赖程度如何?这里的答案将指向将 SQL 语句和逻辑移动到新 RDBMS 所需的工作量。 应用程序是否依赖于任何 SQL Server 特定功能或 MySQL 不具备的功能?重写代码以适应 MySQL 的成本是多少? 希望应用程序使用集中式连接字符串。这需要改变,希望它在web.config 中。如果它被硬编码在数据访问代码中,那么它就是一个查找+替换的游戏。

对第二个问题的简短回答是,您将无法仅在新的 RDBMS 中实现数据并让应用程序正常工作。必须重新编译才能使用新的数据访问库 (ADO.NET for MySQL)。

总而言之,当然可以让它工作起来一样,但所需的工作量并不小,而且 100% 取决于代码。

【讨论】:

以上是关于将 SQL Server 数据库转换为 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL Server 数据库转换为 MySQL

将 MySQL 脚本转换为 SQL Server [关闭]

将 MySQL 简单查询转换为 SQL Server

将超大规模查询从 SQL Server 转换为 MySQL - JOIN 问题

如何将查询从 phpMyAdmin SQL Dump 转换为 sql server 易读查询

如何将 SQL Server SMALLDATETIME 转换为 Unix 时间戳?