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