CHECKSUM_AGG (Transact-SQL)
返回组中各值的校验和。 将忽略 Null 值。 后面可以跟随 OVER 子句。
语法
CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )
参数
ALL
对所有的值进行聚合函数运算。 ALL 为默认值。DISTINCT
指定 CHECKSUM_AGG 返回唯一校验值。expression
一个整数表达式。 不允许使用聚合函数和子查询。
返回类型
将所有 expression 值的校验值作为 int 返回。
注释
CHECKSUM_AGG 可用于检测表中的更改。
表中行的顺序不影响 CHECKSUM_AGG 的结果。 此外,CHECKSUM_AGG 函数还可与 DISTINCT 关键字和 GROUP BY 子句一起使用。
如果表达式列表中的某个值发生更改,则列表的校验和通常也会更改。 但只在极少数情况下,校验和会保持不变。
CHECKSUM_AGG 与其他聚合函数具有相似的功能。 有关详细信息,请参阅聚合函数 (Transact-SQL)。
示例
以下示例使用 CHECKSUM_AGG 检测 AdventureWorks 数据库中 ProductInventory 表的 Quantity 列中的更改。
--Get the checksum value before the column value is changed.
USE AdventureWorks2012;
GO
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