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)