【问题标题】:Where can I find a list of ANSI SQL keywords/functions? [closed]在哪里可以找到 ANSI SQL 关键字/函数的列表? [关闭]
【发布时间】:2021-01-21 11:07:29
【问题描述】:

我正在使用 SQL Server 开发一个应用程序,但我被要求尽可能地使其与 ANSI 标准兼容,以防我们将来需要更改为不同的数据库。

在某处是否有纯 ANSI SQL 支持的函数列表?我本以为会有,但我在 Google 上 20 分钟后找不到。

【问题讨论】:

  • DATEDIFF 和 DATEDIFF_BIG 都不是 ANSI SQL 标准的一部分
  • 我不认为 ANSI SQL 规范在任何地方都可以免费获得……我也搜索过一次,看来您必须付费才能获得它。另一方面,我不认为任何数据库都是 100% ANSI 兼容的,所以你想做的事情可能是不可能的。尤其是日期函数,是高度特定于供应商的。
  • 您通常能找到的最好的是标准草案——最终草案通常“足够接近”。 PostgreSQL 曾经有链接到其附录之一中的各种草稿,但它们似乎不再存在。
  • 例如这是我访问ANSI-92草稿的常用链接

标签: sql-server ansi-sql


【解决方案1】:

但我被要求尽可能地使其与 ANSI 标准保持兼容,以防我们将来需要更改为不同的数据库。

请注意,ANSI 兼容性不足以保证可移植性,因为 SQL Server 的 ANSI 兼容语法可能无法由其他平台实现。

最大化可移植性的最佳实践是最小化数据库端存储过程和函数,因为它们总是不同的,并且(正如您所做的那样)更喜欢 ANSI 风格的做某事而不是专有的。 EG 使用 CASE 而不是 ISNULL 等。

最终,您应该计划在您的应用程序中拥有一个抽象层,允许您更改数据库或支持多个数据库。如果您在应用程序(如实体框架、Hibernate 等)中使用对象关系映射 (ORM),则可用于最小化和管理应用程序代码对特定 RDBMS 的依赖。

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多