【问题标题】:CHECKSUM_AGG and WHERE conditions in SQLSQL 中的 CHECKSUM_AGG 和 WHERE 条件
【发布时间】:2015-09-22 15:34:48
【问题描述】:

我试图找出何时更改了表,但仅针对满足特定条件的行。我试过这个查询:

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

我得到一个常规 SQL Server 错误。如果我直接执行查询,错误是:

'('附近的语法不正确

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

【问题讨论】:

    标签: sql-server conditional-statements checksum


    【解决方案1】:

    错误是由错误放置的查询提示引起的,而不是由您使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2023-03-07
      • 1970-01-01
      • 2016-04-12
      相关资源
      最近更新 更多