CHECKSUM_AGG (Transact-SQL)
Возвращает контрольную сумму значений в группе. Значения NULL не учитываются. За функцией может следовать предложение OVER.
Синтаксические обозначения в Transact-SQL
Синтаксис
CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )
Аргументы
ALL
Применяет агрегатную функцию ко всем значениям. ALL является аргументом по умолчанию.DISTINCT
Указывает, что CHECKSUM_AGG возвращает контрольную сумму уникальных значений.expression
Является целочисленным выражением. Агрегатные функции и вложенные запросы недопустимы.
Типы возвращаемых данных
Возвращает контрольную сумму всех значений expression как int.
Замечания
Функция CHECKSUM_AGG может использоваться для обнаружения изменений в таблице.
Порядок строк в таблице не влияет на результат функции CHECKSUM_AGG. Кроме того, функции CHECKSUM_AGG могут использоваться с ключевым словом DISTINCT и предложением GROUP BY.
Если одно из значений в списке выражений меняется, то обычно меняется и контрольная сумма этого списка. Однако есть небольшая вероятность того, что контрольная сумма не изменится.
Действие функции CHECKSUM_AGG аналогично действию других агрегатных функций. Дополнительные сведения см. в разделе Агрегатные функции (Transact-SQL).
Примеры
В следующем примере функция CHECKSUM_AGG используется для обнаружения изменений в столбце Quantity таблицы ProductInventory в базе данных AdventureWorks.
--Get the checksum value before the column value is changed.
USE AdventureWorks2012;
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