将 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 - JOIN 问题