MS Access查询转换为Sql Server

时间:2014-06-20 12:58:50

标签: sql-server ms-access

我正在将大量访问查询转换为sql server存储过程。所以sql需要满足t-sql标准。例如IIF等 有没有可以将大访问查询转换为t-sql的工具?这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

至于"工具"只会为你转换查询,我不知道。 this threadthis site上的任何人都没有。

但是,有几个地方我可以指导你,这可能有助于过渡。

Here is a cheat sheet you can use as a quick glance when converting your queries.

如果您的查询使用任何[表格]!参考文献,也可能存在问题。 (我从未尝试过,但我会认为它不起作用。)

This resource可能是您在SQL Server中可能需要学习的最详细的解释。从存储的查询,到处理NULL到其他一些差异。与T-SQL相比,MS Access SQL也存在差异。 Gordon Linoff简要介绍了他blog中的10个重要差异。

  1. Access不支持case语句,因此条件逻辑是 使用非标准IIf()Switch()函数完成。
  2. 访问需要围绕每个成对连接的括号,从而产生 嵌套的扩散只能用于 混淆人们学习SQL。
  3. 访问连接语法需要INNER for INNER JOIN。虽然它可能 使用内部进行澄清是一个好主意,它经常被省略 练习(在其他数据库中)。
  4. Access不支持完全外部联接。
  5. Access不允许在子查询中使用union或union。
  6. Access需要AS表格别名。在大多数数据库中,这个 是可选的,我更喜欢只使用列别名。 具有讽刺意味的是,在Oracle中禁止使用as表格别名。
  7. Access使用双引号分隔字符串(而不是单引号) 引用)并且是唯一使用&的数据库(据我所知)作为一个 字符串连接运算符。
  8. 访问使用*作为通配符而不是%。
  9. 访问允许BETWEEN和。这在其他数据库中是允许的,但是 将永远评价为假。
  10. Access不支持窗口/分析功能(使用over  和条款分割)。
  11. 总之,不,没有我见过的工具。