CHECKSUM_AGG 和 SQL 中的 WHERE 条件

CHECKSUM_AGG and WHERE conditions in SQL

我试图查明 table 何时被更改,但仅限于满足特定条件的行。我试过这个查询:

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(LastChanged)) FROM Products WHERE Category = 2 WITH (NOLOCK)

然后我收到一般 SQL 服务器错误。如果我直接执行查询,错误是:

Incorect syntax near '('

是否可以只获取满足条件的行的校验和?

错误是由错误放置的查询提示引起的,而不是由您使用 CHECKSUM 表达式引起的。

尽管阅读 whether you should really be using NOLOCK at all 可能会有所帮助,但请尝试将 WITH (NOLOCK) 放在 FROM 之后:

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(LastChanged)) 
FROM Products WITH (NOLOCK)
WHERE Category = 2