gpt4 book ai didi

sql - 将 SQL Server 数据库设置为仅允许符合 ANSI 的 SQL 代码

转载 作者:行者123 更新时间:2023-12-03 02:58:21 25 4
gpt4 key购买 nike

有没有办法可以强制我的 sql server 数据库仅使用 SQL 兼容代码?

这样,SQL 代码就可以轻松传输到其他数据库系统,例如 Oracle、IBM 和其他 ANSI 兼容系统。

或者其他可行的方法来获得相同的结果?

最佳答案

不,不是真的。

但是,它并没有真正产生太大的区别 - 可以在广泛不同的 SQL 引擎中使用相同(ANSI 或其他)SQL 的想法只是一种幻想。如今通常的方法是请某人为您构建查询 - 至少在发送 SQL 之前允许进行一些优化。如果重要的话,您甚至可以拥有不同的数据库结构。

甚至不同数据库客户端之间的数据类型及其表示形式也可能有所不同。例如,现在我正在开发一个使用数据集的旧 Oracle 应用程序。在 Oracle 上,所有 number 都是 C# 中的 decimal。在 MS SQL 上,有些是 decimal,有些是 int。即使使用纯粹的 ANSI SQL,您也需要处理像这样的微小不兼容性,并且也很难追求性能。

例如,遗留应用程序中的一些 Oracle 查询使用显式索引 - 由于查询的构建和形成方式(糟糕),这确实是必要的,但仅限于 Oracle - MS SQL 似乎不需要它们全部。 MS SQL 执行计划器比 Oracle 更好地处理某些 SQL,反之亦然 - 一些性能关键查询在两个引擎上看起来完全不同。如果我可以为每个数据库结构提供不同的数据库结构,那么这将有助于提高性能 很多。并且还有不同的开发范例 - Oracle 代码在插入之前请求 ID(等),而 MS SQL 的标准是让数据库引擎处理该问题 - 您只需确保代码端的关联正确转换为DB端的关系字段。

这只是两个主要的数据库引擎。 MySQL、Postgres、DB2...所有这些都有微小的怪癖,即使在完全 ANSI 模式下也是如此。除此之外,ANSI 标准甚至没有在其中任何一个中得到完全实现,泡沫很容易破裂。

即使使用中间体(如某些 O/RM 系统)也会暴露大量泄漏。关键是尽可能远离任何特定的东西 - 并确保每个人都清楚你无法跟上谜语的地方。

关于sql - 将 SQL Server 数据库设置为仅允许符合 ANSI 的 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28692919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com