适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric
中的 SQL 分析终结点Microsoft Fabric
中的仓库Microsoft Fabric 中的 SQL 数据库
此函数返回组中各值的校验和。
CHECKSUM_AGG 将忽略 null 值。
OVER 子句可以遵循 CHECKSUM_AGG。
语法
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