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
    Constante, colonne, fonction et toute combinaison d'opérateurs arithmétiques, de chaîne et au niveau du bit. expression est une expression dont le type de données est int. Les fonctions d'agrégation et les sous-requêtes ne sont pas autorisées.

    Pour plus d'informations, consultez Expressions (Transact-SQL).

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

Types renvoyés

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

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

Voir aussi

Référence

CHECKSUM (Transact-SQL)
Clause OVER (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005