问题描述
我正在使用sql Server开发应用程序,但是要求我尽可能使其与ANSI标准兼容,以防将来我们需要更改为其他数据库。
某处是否有纯ANSI sql支持的功能列表?本来以为会有,但是20分钟后我没能在Google上找到一个。
解决方法
但是我被要求尽可能使其与ANSI标准兼容,以防将来我们需要更改为其他数据库。
请注意,ANSI兼容性不足以保证可移植性,因为其他平台可能无法实现SQL Server的ANSI兼容语法。
最大化可移植性的最佳实践是最小化数据库端存储过程和函数,因为它们总是不同的,并且(正如您正在做的那样)喜欢做某件事的ANSI风格胜过专有的。 EG使用CASE而不是ISNULL等。
最终,您应该计划在应用程序中拥有一个抽象层,该抽象层将允许您更改数据库或支持多个数据库。如果您在应用程序中使用对象关系映射(ORM)(例如Entity Framework,Hibernate等),则可用于最小化和管理对特定RDBMS的应用程序代码依赖性。