【发布时间】:2015-02-24 10:08:14
【问题描述】:
有没有办法强制我的 sql server 数据库只使用 SQL Compliant 代码?
通过这种方式,SQL 代码可以轻松传输到其他数据库系统,如 Oracle、IBM 和其他符合 ANSI 的系统。
或其他可行的方法来获得相同的结果?
【问题讨论】:
-
没有像 ANSI 兼容的 SQL 代码这样的东西。各种标准(SQL92、99、2003、2006、2008、2011)都有一致性级别,没有数据库完全符合所有这些标准。事实上,您提到的系统是一些最严重的违规者。
-
您要解决的真正问题是什么?如果您修改它们,有有 个默认值会导致非标准行为,例如将ANSI_NULLS 设置为关闭。在其他情况下,标准(故意)模糊到足以让供应商实现他们想要的任何东西
-
@PanagiotisKanavos 我正在构建一些将由前端应用程序触发的 SQL 存储过程。但是,我希望这些存储过程如此通用,以至于它们可以在各种 rdbms 上运行而无需更改。这将是理想的情况。
-
那你看错了技术。存储过程或SQL/PSM 是标准化程度最低的。您提到的每个产品都有自己的procedural extensions。 为什么您要寻找通用过程而不是使用 ORM?
-
我有 2 个原因,其中只有一个是有效的。我不熟悉ORM。其次,逻辑将比 CRUD 操作更复杂,并且也将用于大型数据集。我想 SQL 代码在 DB 引擎上比 ORM 更强大。已经感谢您的意见。
标签: sql sql-server ansi-sql