H2 DB 查询和 Sql Server 之间的兼容性问题
Posted
技术标签:
【中文标题】H2 DB 查询和 Sql Server 之间的兼容性问题【英文标题】:Compatibility issue between H2 DB queries and Sql Server 【发布时间】:2016-07-06 10:05:11 【问题描述】:我正在开发一个使用 H2 DB 的应用程序。但是 Sql server 不支持 H2 支持的语法中的查询,反之亦然。有什么方法可以使应用程序使用同时支持 H2 和 Sql Server 的通用查询结构工作? 这是我的疑问.. 第一次查询
SQL Server 语法 -
SELECT columns INTO table_1 FROM table_2 WHERE conditions
H2 DB 等效
CREATE TABLE table_1 AS SELECT columns FROM table_2 WHERE conditions
*SQL Server 不支持上述 H2 查询
第二次查询
SQL 服务器语法
UPDATE a SET columns FROM table_1 a JOIN table_2 b on keys WHERE conditions INSERT INTO table_1(columns) SELECT columns FROM table_2 WHERE conditions
H2 DB 等效
第一部分
UPDATE table_1 a SET column=(SELECT column FROM table_2 b WHERE conditions)
第二部分
INSERT INTO table_1(columns) SELECT columns FROM table_2 WHERE conditions
【问题讨论】:
【参考方案1】:是的,重写查询。
这样做的正确方法是创建目标表,然后说:
插入到 table2 SELECT ... FROM table1
【讨论】:
以上是关于H2 DB 查询和 Sql Server 之间的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章
在 2008 SQL Server DB 和 Android App 之间进行通信
HSQLDB Junit 测试对 DB2 和 SQL Server NOLOCK 查询失败
在 SQL Server DB 之间自动/以编程方式复制表(结构和数据)