CHECKSUM_AGG (Transact-SQL)

グループ内にある値のチェックサムを返します。NULL 値は無視されます。後に OVER 句が続く場合があります。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手