【问题标题】:Is there a way to detect SQL Dialect without knowing the database type?有没有办法在不知道数据库类型的情况下检测 SQL 方言?
【发布时间】:2020-02-14 16:16:39
【问题描述】:

我正在使用 Dbeaver 通过 ODBC 连接到数据库。我不知道它是什么类型的数据库。它可能是专有的。谁知道?

有没有办法找出要使用的 SQL 方言? LIMIT 语句不起作用,我不想整天选择 * 来破坏东西。

我尝试了其他几种方法来限制结果 - https://en.wikipedia.org/wiki/Select_(SQL)#Limiting_result_rows - 但我找不到有效的选项。

提前致谢!

【问题讨论】:

  • 我们可以假设您通过 ODBC DSN 进行连接,因此您甚至看不到 DRIVER= 名称是什么吗?如果是这样,您能否查看 DSN 定义以获取有关您要连接的后端的更多信息?
  • 想通了!但是是的,你可以假设!

标签: sql odbc dbeaver


【解决方案1】:

假设您正在执行此数据库服务器识别一次,您可以发出查询以查看哪些有效或无法确定数据库服务器类型。

对于SQL Server,有很多比如选择@@变量之一选择@@version

对于甲骨文,Select 1 FROM DUAL;

这两个查询都不会修改任何数据,并且应该快速运行。其他数据库服务器也有等效的其他服务器。

还可以查看连接字符串并找出正在使用的数据库驱动程序类型。

【讨论】:

    【解决方案2】:

    又试了几个limit-style语句,发现是SQL Server/Access

    【讨论】:

    • Access 中的 SQL 不完全兼容 SQL Server。
    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2021-12-26
    相关资源
    最近更新 更多