什么是MySQL不支持的SQL Server查询语法?

什么是MySQL不支持的SQL Server查询语法?,mysql,sql-server,database,migrate,Mysql,Sql Server,Database,Migrate,我在一个项目中工作,目前我们正在使用SQL Server数据库。但是最近有人决定将数据库改为MySQL 我没有使用任何存储过程、视图、触发器、用户定义函数等,但我认为即使这样,MySQL也不支持为SQL Server编写的某些查询 有人能帮忙吗:为了让所有的查询也能在MySQL上正常运行,我必须检查(和更改)哪些内容?对于这个问题,总是可以选择从MySQL AB获得商业支持。我敢肯定他们已经做了足够多的MSSQL->MySQL迁移,对这方面有了很多了解。如果迁移上的价格标签不是问题 或者,您可以

我在一个项目中工作,目前我们正在使用SQL Server数据库。但是最近有人决定将数据库改为MySQL

我没有使用任何存储过程、视图、触发器、用户定义函数等,但我认为即使这样,MySQL也不支持为SQL Server编写的某些查询


有人能帮忙吗:为了让所有的查询也能在MySQL上正常运行,我必须检查(和更改)哪些内容?

对于这个问题,总是可以选择从MySQL AB获得商业支持。我敢肯定他们已经做了足够多的MSSQL->MySQL迁移,对这方面有了很多了解。如果迁移上的价格标签不是问题


或者,您可以尝试在数据上运行MySQL迁移工具包,并在它无法迁移的内容上查找有意义的错误消息。MySQL迁移工具包是MySQL GUI工具的一部分。

对于这个问题,始终可以选择从MySQL AB获得商业支持。我敢肯定他们已经做了足够多的MSSQL->MySQL迁移,对这方面有了很多了解。如果迁移上的价格标签不是问题


或者,您可以尝试在数据上运行MySQL迁移工具包,并在它无法迁移的内容上查找有意义的错误消息。MySQL迁移工具包是MySQL GUI工具的一部分。

我不查阅文档就知道的查询是无效的:

  • (递归)公共表表达式
  • 窗口功能
  • 使用标准SQL字符串连接的查询
  • 两个系统之间使用JOIN的更新不同
  • 日期算法:
    Date\u列+1
    在SQL Server中的行为不同
  • 除零将产生一个错误
  • SQL Server将拒绝不适合列的值(而不是像MySQL在默认安装中那样以静默方式截断它)
DDL不起作用,可能会影响性能和/或数据质量

  • 需要精度高达毫秒的datetime列
  • 具有检查约束的表
  • 索引视图
  • 视图上的触发器
  • 表格函数(
    从my_函数(42)中选择*;
  • 过滤索引(“部分索引”)
  • 基于函数的索引

我在未查阅文档的情况下知道的查询不起作用:

  • (递归)公共表表达式
  • 窗口功能
  • 使用标准SQL字符串连接的查询
  • 两个系统之间使用JOIN的更新不同
  • 日期算法:
    Date\u列+1
    在SQL Server中的行为不同
  • 除零将产生一个错误
  • SQL Server将拒绝不适合列的值(而不是像MySQL在默认安装中那样以静默方式截断它)
DDL不起作用,可能会影响性能和/或数据质量

  • 需要精度高达毫秒的datetime列
  • 具有检查约束的表
  • 索引视图
  • 视图上的触发器
  • 表格函数(
    从my_函数(42)中选择*;
  • 过滤索引(“部分索引”)
  • 基于函数的索引

您必须彻底重新测试所有数据库代码。除了语法不受支持之外,可能还有很多不同之处。如果排序规则不同怎么办?如果优化是以不同的方式进行的呢?以前运行快的代码现在可能运行慢。您必须彻底重新测试所有数据库代码。除了语法不受支持之外,可能还有很多不同之处。如果排序规则不同怎么办?如果优化是以不同的方式进行的呢?以前跑得快的东西现在可能跑得慢。