返回組中值的校驗(yàn)值。空值將被忽略。
CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )
ALL
對(duì)所有的值進(jìn)行聚合函數(shù)運(yùn)算。ALL 是默認(rèn)設(shè)置。
DISTINCT
指定 CHECKSUM_AGG 返回唯一值的校驗(yàn)值。
expression
常量、列或函數(shù)以及數(shù)字、位運(yùn)算和字符串運(yùn)算符的任意組合。expression 是一個(gè) int 數(shù)據(jù)類型的表達(dá)式。不允許進(jìn)行聚合函數(shù)運(yùn)算和子查詢。
將所有 expression 值的校驗(yàn)值作為 int 返回。
CHECKSUM_AGG 可與 BINARY_CHECKSUM 一起使用以檢測表中的更改。
表中行的順序不影響 CHECKSUM_AGG 的結(jié)果。此外,CHECKSUM_AGG 函數(shù)還可與 DISTINCT 關(guān)鍵字和 GROUP BY 子句一起使用。
如果表達(dá)式列表中的某個(gè)值發(fā)生變化,那么列表的校驗(yàn)值通常也會(huì)變化。但只在極少數(shù)情況下,校驗(yàn)值會(huì)保持不變。
CHECKSUM_AGG 與其它聚合函數(shù)具有相似的功能。有關(guān)更多信息,請(qǐng)參見聚合函數(shù)。
下面的示例使用帶有 BINARY_CHECKSUM 函數(shù)的 CHECKSUM_AGG 檢測 Products 表中的更改。
USE Northwind
GO
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM Products
下面的示例檢測 Northwind 數(shù)據(jù)庫中 Products 表的 UnitsInStock 列中的更改。
--Get the checksum value before the column value is changed.
USE Northwind
GO
SELECT CHECKSUM_AGG(CAST(UnitsInStock AS int))
FROM Products
下面是結(jié)果集:
57
--Change the value of a row in the column
UPDATE Products --
SET UnitsInStock=135
WHERE UnitsInStock=125
--Get the checksum of the modified column.
SELECT CHECKSUM_AGG(CAST(UnitsInStock AS int))
FROM Products
下面是結(jié)果集:
195
相關(guān)文章