将SQL Server数据库转换为MySQL

将SQL Server数据库转换为MySQL,mysql,sql-server,database,migration,Mysql,Sql Server,Database,Migration,我在专用服务器上的SQL Server 2008 Express上有一个应用程序数据库。这对于我的web应用程序来说是不够的 有没有什么好的免费转换工具可以让我将当前的SQL Server数据库转换为服务器上的MySQL 我的web应用程序也能工作吗 目前,这个问题中没有足够的信息来真正解决web应用程序是否能同样工作的许多问题 简单的部分是将模式和数据移植到另一个RDBMS。SQL Server有大量的Generate Scripts命令来生成CREATE TABLE语句。您还可以通过SQL

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

  • 有没有什么好的免费转换工具可以让我将当前的SQL Server数据库转换为服务器上的MySQL
  • 我的web应用程序也能工作吗

目前,这个问题中没有足够的信息来真正解决web应用程序是否能同样工作的许多问题

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

在移动应用程序时会遇到挑战

  • 什么是数据访问策略?是所有ADO.NET准备/构建的语句,还是存储过程?LINQ可能是SQL吗
  • 中的SQL语句:它们在多大程度上是ANSI标准,以及SQL对TSQL特定关键字的依赖程度如何?这里的答案将指出将SQL语句和逻辑移动到新的RDBMS所需的工作量
  • 应用程序是否依赖于SQL Server特定的功能或MySQL没有的功能?重写代码以适应MySQL的成本是多少
  • 希望应用程序使用一个集中的连接字符串。这需要改变,希望它在
    web.config
    中。如果它在数据访问代码中硬编码,那么它就是一个查找+替换的游戏
对第二个问题的简短回答是,您将无法在新的RDBMS中实现您的数据并让应用程序工作。必须重新编译它才能使用新的数据访问库()

总而言之,当然可以让它以同样的方式工作,但所需的工作量并不小,而且100%依赖于代码


我们中的任何人如何用给出的信息回答最后一个问题?这取决于应用程序是否使用正确的标准sql。SQL Server应用程序通常不会正确引用列名等,这可能会导致与mysql关键字冲突。在这种情况下,您可能会遇到问题。这种问题通常需要编程解决方案,因此最好转移到堆栈溢出。无论它是否被移动,细节的缺乏使得正确的回答很困难,如果不是不可能的话。