CHECKSUM_AGG (Transact-SQL)
傳回群組中各個值的總和檢查碼。系統會忽略 Null 值。後面可能接著 OVER 子句。
語法
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)