Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureКонечная точка аналитики SQL в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Эта функция возвращает контрольную сумму значений в группе. Значения NULL функция CHECKSUM_AGG не учитывает.
Предложение OVER может следовать за функцией CHECKSUM_AGG.
Соглашения о синтаксисе Transact-SQL
Синтаксис
CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )
Аргументы
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 таблицы базы данных AdventureWorks2025.
--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)