CHECKSUM_AGG(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 中的 SQL 数据库

此函数返回组中各值的校验和。 CHECKSUM_AGG 将忽略 null 值。 OVER 子句可以遵循 CHECKSUM_AGG

Transact-SQL 语法约定

语法

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )  

参数

ALL
向所有值应用此聚合函数。 ALL 为默认参数。

DISTINCT
指定 CHECKSUM_AGG 返回唯一值的校验和。

expression
整数表达式CHECKSUM_AGG 不允许使用聚合函数或子查询。

返回类型

将所有表达式值的校验和作为 int 类型返回

注解

CHECKSUM_AGG 可以检测表中的更改。

CHECKSUM_AGG 结果不取决于表中行的顺序。 此外,CHECKSUM_AGG 函数允许使用 DISTINCT 关键字和 GROUP BY 子句。

如果表达式列表值更改,则列表校验和值列表很可能也会更改。 但是,也存在计算校验和不会更改这一很小的可能性。

CHECKSUM_AGG 具有类似于其他聚合函数的功能。 有关详细信息,请参阅聚合函数 (Transact-SQL)

示例

这些示例用于CHECKSUM_AGG检测 AdventureWorks2025 数据库中表格列ProductInventory的变化Quantity

--Get the checksum value before the column value is changed.  

SELECT CHECKSUM_AGG(CAST(Quantity AS INT))  
FROM Production.ProductInventory;  
GO  

结果集如下。

------------------------  
262  
UPDATE Production.ProductInventory   
SET Quantity=125  
WHERE Quantity=100;  
GO  

--Get the checksum of the modified column.  
SELECT CHECKSUM_AGG(CAST(Quantity AS INT))  
FROM Production.ProductInventory;  

结果集如下。

------------------------  
287  

另请参阅

校验和(Transact-SQL)

HASHBYTES (Transact-SQL)

BINARY_CHECKSUM(Transact-SQL)

OVER 子句 (Transact-SQL)