我如何确认哪些RDBMS I';我在使用(任何形式的SQL)?

我如何确认哪些RDBMS I';我在使用(任何形式的SQL)?,sql,rdbms,Sql,Rdbms,我正在为那些对SQL完全陌生的人编写说明,他们可能正在使用一个接口与数据库对话。界面可能是他们工作场所提供的SQL编辑器,也可能是允许他们编写查询而不是使用gui的软件(例如BI报告系统)。他们是商人,不是IT 我希望他们做的第一件事是确定他们拥有哪些RDBMS,这样我们就可以确定他们需要学习哪种类型的SQL。我觉得问这个问题很傻:但是有没有一个SQL命令可以跨所有RDBMS来告诉他们这一点?我得到的最接近的版本是select version(),但它只给出了版本号,而没有给出RDBMS名称。无

我正在为那些对SQL完全陌生的人编写说明,他们可能正在使用一个接口与数据库对话。界面可能是他们工作场所提供的SQL编辑器,也可能是允许他们编写查询而不是使用gui的软件(例如BI报告系统)。他们是商人,不是IT


我希望他们做的第一件事是确定他们拥有哪些RDBMS,这样我们就可以确定他们需要学习哪种类型的SQL。我觉得问这个问题很傻:但是有没有一个SQL命令可以跨所有RDBMS来告诉他们这一点?我得到的最接近的版本是select version(),但它只给出了版本号,而没有给出RDBMS名称。无论如何,它的实现并不一致。

通常,如果他们使用某种BI系统,您只需检查设置连接参数的软件配置,如果ANSI信息模式可用:

SELECT * FROM information_schema.sql_implementation_info;

尤其是“DBMS名称”和“DBMS版本”字段。

至少不适用于SQL Server 2012或更低版本。ANSI信息模式可能是可选的,需要单独安装/启用。它应该是跨实现的。Micrsoft SQL Server支持许多
信息\u架构
视图,但不支持
SQL\u实现\u信息
。是的,这是ANSI标准的一部分。不,Microsoft SQL Server没有实现它。SQL Server 2014也没有实现。我不会投反对票,但@emma应该知道,如果她的用户有可能连接到Microsoft SQL Server,这个答案将不起作用。