Partager via


CHECKSUM_AGG (Transact-SQL)

Renvoie la somme de contrôle des valeurs d'un groupe. Les valeurs NULL sont ignorées. Cette fonction peut être suivie par la clause OVER.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )

Arguments

  • ALL
    Applique la fonction d'agrégation à toutes les valeurs. ALL est l'argument par défaut.

  • DISTINCT
    Spécifie que CHECKSUM_AGG renvoie la somme de contrôle de valeurs uniques.

  • expression
    Est une expression entière. Les fonctions d'agrégation et les sous-requêtes ne sont pas autorisées.

Types renvoyés

Renvoie la somme de contrôle de toutes les valeurs de expression en tant que int.

Notes

CHECKSUM_AGG peut être utilisé pour détecter les modifications effectuées dans une table.

L'ordre des lignes dans la table n'influe pas sur le résultat de CHECKSUM_AGG. Les fonctions CHECKSUM_AGG peuvent être également utilisées avec le mot clé DISTINCT et la clause GROUP BY.

En général, si une des valeurs de la liste d'expressions change, la somme de contrôle de la liste change également. La probabilité pour que la somme de contrôle ne change pas est faible mais elle existe.

CHECKSUM_AGG a des fonctionnalités similaires à celles des autres fonctions d'agrégation. Pour plus d'informations, consultez Fonctions d'agrégation (Transact-SQL).

Exemple

L'exemple suivant utilise CHECKSUM_AGG pour détecter des modifications dans la colonne Quantity de la table ProductInventory de la base de donnéesAdventureWorks.

--Get the checksum value before the column value is changed.
USE AdventureWorks;
GO
SELECT CHECKSUM_AGG(CAST(Quantity AS int))
FROM Production.ProductInventory;
GO

Voici l'ensemble des résultats.

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

Voici l'ensemble des résultats.

------------------------
287