|
|
1
4
您可以遵循ansi sql 92。我知道的所有主要RDBMS都会支持这一点。 然而,个别rdbms制造商已经添加了很多东西来增强他们自己的sql风格。那就是你陷入困境的地方。 您可能需要根据所连接的rdbms在代码中进行分支,并在此时生成/选择适当的sql语句。 一个更好的选择是为每个支持的rdbms创建一个dal。在DAL上实现一个DAL接口,使它们一致。这应该比转换代码更容易。 我建议您不要试图取悦所有人,您应该编写代码以支持您希望部署的前一两个系统,并在需要时添加对其他rdbms的支持。 |
|
|
2
2
我建议您使用orm(linq、nhibernate等)来抽象sql方言,而不是试图编写普通的sql。 |
|
|
3
0
你知道吗,我敢打赌你完全可以使用ansi sql,它只需要一些努力,可能还需要额外的工作。即
在ansi中会有一些解决方法,因为实际上所有特定于db的构造都是缩短和/或缩短获取或描述数据的现有方式的方法。另一个选项可能是将对各种数据库的访问限制为存储过程和用户定义的函数。这样,您可以为一堆数据库编写脚本,您知道这些数据库将用于要求在应用程序工作之前运行特定于数据库的脚本。 只是个主意。 |