CHECKSUM_AGG (Transact-SQL)

傳回群組中各個值的總和檢查碼。系統會忽略 Null 值。後面可能接著 OVER 子句

主題連結圖示Transact-SQL 語法慣例

語法

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 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