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 を使って、AdventureWorks2008R2 データベースの ProductInventory テーブルにある Quantity 列の変更を検出します。

--Get the checksum value before the column value is changed.
USE AdventureWorks2008R2;
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