因此,问题是在两种SQL方言之间进行翻译需要多少工作(广义上)?通常情况下,它是否往往是微不足道的工作,并且大多数都是使用查找和替换自动完成的?还是说需要手动调整大量典型查询的东西?我请求一些关于任务规模的一般指导。
感谢任何帮助。
这将取决于情况,但很可能需要逐行浏览。如果存储过程只是简单的选择操作,那么这可能相当快,但即使是一些看似简单的操作也需要手动修改。例如,在MSSQL中select top 20 [column] from [table]
变成了在MySQL中的select [column] from [table] limit 0,20
。这甚至可能意味着更高级别代码的更改,例如处理分页等任务 - 您不能假设只需更改SQL即可使事情正常工作。
如果有更复杂的存储过程或使用T-SQL函数的任何内容,则可能需要长时间而且通常不令人满意的工作。
我认为这个问题没有正确答案。
有多少东西在使用mssql特定的内容,有哪些是兼容的?不确定。如果只是简单的选择查询,你应该不会遇到太多问题,但如果你要做更多的事情,你需要逐行分析,说实话,
最初的开发工作需要多长时间?还是在很多年的时间里完成的?
个人而言,我会抵制任何剪切和粘贴的诱惑,我会评估你所拥有的内容,然后从头开始用mysql编写所有内容,希望你的数据库已经完全记录下来了(笑),如果没有,那么我并不羡慕这个任务。
这是一个当前正在运行的系统还是正在开发中的系统?你没有说...不要忘记像排序和Unicode数据这样的东西,如果这是一个有实际内容的数据库,它不仅仅是将存储过程带过来的问题。
下一个需要考虑的问题是,当前的结构是否真的是你想要继续使用的,或者你可以转向Hibernate,然后有性能问题。
直接回答你的问题是,这取决于人和你所谈论的复杂性..但这绝对是一项需要非常小心的任务。特别是如果这是一个正在运行的系统。
最近我不得不将一个Oracle数据库迁移到MSSQL Server。我花了大约3天的时间阅读源代码并进行必要的调整。这个项目中有大约和你的项目一样多的查询,但这些查询几乎都是简单的(select、insert、update、delete)。一个存储过程通常包含多个查询,所以一周的工作可能是现实的。