CHECKSUM_AGG (Transact-SQL)

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

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

Transact-SQL 语法约定

语法

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

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)