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