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