【问题标题】:H2DB - MS SQL Server Compatibility mode not workingH2DB - MS SQL Server 兼容模式不起作用
【发布时间】:2020-05-03 17:52:07
【问题描述】:

我正在尝试为连接到 MS SQL Server 的 Java 代码库编写单元/集成测试用例。在这项工作中,我能够成功地将我的所有 SQL Server 表复制到 H2 数据库文件并在 H2 数据库上运行我的单元测试。

我已经彻底审查了 H2 DB Compatibility 功能。

  1. 在我的 JDBC URL 上,我设置了模式 - jdbc:h2:~/test;MODE=MSSQLServer
  2. 尝试连接到 H2DB 文件并执行

    设置模式 MSSQLServer

  3. 我在内存模式和文件模式下都尝试过,但两者都不能在兼容模式下工作。

这两个似乎都不起作用。我的应用程序 SQL 包含 NOLOCK 提示和带方括号的标识符。兼容性文档中引用了这两个支持。我什至在 H2DB 的 github 上查看了他们的 MS SQL Server unit test 并发现这些是受支持的。

仍然想知道我可能会错过什么。

【问题讨论】:

    标签: sql-server h2 in-memory-database h2db


    【解决方案1】:

    终于发现我使用的是旧版本“h2-1.4.197”,其中未启用 MS SQL Server 兼容性。

    因此升级到版本“h2-1.4.200”,一旦我们处于 SQL Server 模式,就会忽略 (NOLOCK) 等提示。方括号仍然没有被忽略 - 但至少猜测兼容模式正在工作。所以就这样吧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 2014-08-12
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 2018-06-28
      • 2014-09-02
      • 2017-09-27
      相关资源
      最近更新 更多