1

哪些可用的內存數據庫對SQL Server特定功能具有最佳支持?我一直在嘗試使用H2,但遇到了例如轉義列名的問題:在我們所有的sql查詢中,我們使用(非標準)[FIELDNAME]而不是「FIELDNAME」。這顯然不被H2支持。可能還有其他可能使用的非標準功能,所以我想知道是否有人知道與SQL Server兼容的特定數據庫。具有SQL Server支持的Java內存數據庫

爲了將它放到上下文中,我使用maven和maven-sql-plugin在運行測試之前創建數據庫。

我一直在尋找

  • H2
  • HSQL
  • 德比

,但不能確定哪一個有最好的支持爲SQL Server或者有別人看在。

+0

爲什麼不在你的SQL Server開發數據庫上運行測試?我已經在幾個項目中使用了這種策略(儘管使用Oracle和PostgreSQL),並且它一直運行良好。您節省了創建內存數據庫+基本數據加載的啓動成本,並避免了所有數據庫兼容性問題。 –

+0

@Rogério:我希望能夠在Jenkins上自動運行測試,並且100%確定沒有其他人同時對同一個數據庫運行並可能修改數據。你的建議是我們現在實際上正在做這件事,我想改進它。 – inovaovao

+0

您的測試不應該向數據庫提交事務。這樣,他們將永遠孤立對方,因爲它必須是。 –

回答

3

我已經發現H2有不同的兼容模式,可以在連接字符串中設置。例如:

jdbc:h2:~/test;MODE=MSSQLServer 

這似乎解決了我轉義列名的特定問題。

爲了將來的參考,可以查看documentation on compatibility modes以查看哪些數據庫支持哪些功能。

但是,某些SQL Server功能(如SYSDATETIME())支持而不支持

相關問題