CHECKSUM_AGG (Transact-SQL)

返回组中各值的校验和。空值将被忽略。后面可以跟随 OVER 子句

主题链接图标Transact-SQL 语法约定

语法

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )

参数

  • ALL
    对所有的值进行聚合函数运算。ALL 为默认值。
  • DISTINCT
    指定 CHECKSUM_AGG 返回唯一校验值。
  • expression
    常量、列或函数以及数字、位运算和字符串运算符的任意组合。expression 的数据类型为 int 数据类型的表达式。不允许使用聚合函数和子查询。

    有关详细信息,请参阅表达式(Transact-SQL)

返回类型

将所有 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 AdventureWorks;
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

请参阅

参考

CHECKSUM (Transact-SQL)
OVER 子句 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助