我只是想知道是否存在用于Visual Studio 2019 Professional的SQL标准合规性验证器(可以将其设置为 strict :仅接受绝对合规的语法)。如果它也支持本地语言,那就太好了,但是我已经习惯了仅CLR 这样的东西(我真的不知道为什么可能是因为链接...我也许绝对是错的,但是...我实际上不知道并且猜测了一下。
重要的一点是它不仅需要符合SQL Server,而且还必须符合标准。标准中没有的是错误。
目标是使SQL代码完全独立于DBMS。感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:1)
目标是使SQL代码完全独立于DBMS。
不可能的目标,除非您根本不打算编写SQL。也许这很可悲,但是不同的数据库在非常基本的事情上有所不同,选择和选择所需的标准部分。令人高兴的是,诸如SELECT
,JOIN
和GROUP BY
之类的主要都是常见的,但细节并不常见。
您可以将它们视为口语的一种方言,随时间和地区而变。我对英语最熟悉,但是所有语言都是不断发展变化的。我可以阅读莎士比亚英语,但是我不会像这样写英语。在某些情况下,它在语法上是不正确的,使用未知词,以及常用词的替代含义。
以下是一些在数据库之间差异很大的功能的示例:
interval + '1 day'
。跨数据库的差异很大。FULL JOIN
。recursive
关键字;有些没有。VALUES()
子句中不支持FROM
构造函数。FROM
子句是可选的。FILTER
以及通过功能相关的id进行聚合。很少有数据库支持FETCH
来限制结果,某些数据库不支持该结果。extract()
,但实际上很少有数据库支持该功能。这些只是我脑海中的一些差异,绝不是完整的,甚至不是最重要的。我只想指出,你想做的事是不可能的。