CHECKSUM_AGG (Transact-SQL)

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

此函数返回组中各值的校验和。 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 检测 AdventureWorks2022 数据库中 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  

另请参阅

CHECKSUM (Transact-SQL)

HASHBYTES (Transact-SQL)

BINARY_CHECKSUM (Transact-SQL)

OVER 子句 (Transact-SQL)