我正在使用HSQLDB并尝试运行包含NOLOCK
在查询中的 select 语句。
执行语句时,BadSqlGrammarException
会抛出 a。
有没有办法解决这个问题,因为该命令在 SQL Server 上运行得很好?
a_horse_with_no_name他的评论是正确的:
HSQLDB 不支持 NOLOCK。如果您在语句中需要它,则需要针对真实事物运行测试(SQL Server)
为了澄清这一点,NOLOCK
是一个 SQL Server 特定的关键字,它指定了数据库如何表现的提示。它甚至在 Stack Overflow 上也有自己的标签nolock :
可用于防止查询发出共享读锁的 SQL Server 表提示。虽然经常用于防止查询阻塞其他查询,但它也容易受到脏读和其他潜在数据问题的影响。
因此,包含此关键字的 SQL 查询对 HyperSQL 无效。
你可以做的是:
NOLOCK
. 如果没有更多关于它的知识,就不可能说这将如何影响您的应用程序。附带说明一下,HyperSQL完全支持 SQL 规范:
HyperSQL 2.x 支持 SQL 标准 92、1999、2003、2008 和 2011 定义的 SQL 方言。