CHECKSUM_AGG (Transact-SQL)

Применяется к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure sql analytics в хранилище Microsoft Fabricв Microsoft Fabric

Эта функция возвращает контрольную сумму значений в группе. Значения NULL функция CHECKSUM_AGG не учитывает. Предложение OVER может следовать за функцией CHECKSUM_AGG.

Соглашения о синтаксисе Transact-SQL

Синтаксис

CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

ALL
Применяет агрегатную функцию ко всем значениям. ALL является аргументом по умолчанию.

DISTINCT
Указывает, что CHECKSUM_AGG возвращает контрольную сумму уникальных значений.

выражение
Целочисленное выражение. Функция CHECKSUM_AGG не позволяет использовать агрегатные функции или вложенные запросы.

Типы возвращаемых данных

Возвращает контрольную сумму всех значений expression как int.

Замечания

Функция CHECKSUM_AGG может обнаруживать изменения в таблице.

Результат функции CHECKSUM_AGG не зависит от порядка строк в таблице. Кроме того, функции CHECKSUM_AGG позволяют использовать ключевое слово DISTINCT и предложение GROUP BY.

Если значение в списке выражений изменяется, скорее всего также изменится значение контрольной суммы списка. Тем не менее существует небольшая вероятность того, что вычисленная контрольная сумма не изменится.

CHECKSUM_AGG имеет функциональные возможности, аналогичные другим агрегатным функциям. Дополнительные сведения см. в статье Агрегатные функции (Transact-SQL).

Примеры

Эти примеры используются CHECKSUM_AGG для обнаружения изменений в Quantity столбце ProductInventory таблицы в базе данных AdventureWorks2022.

--Get the checksum value before the column value is changed.  

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  

См. также

КОНТРОЛЬНАЯ СУММА (Transact-SQL)

HASHBYTES (Transact-SQL)

BINARY_CHECKSUM (Transact-SQL)

Предложение OVER (Transact-SQL)