BINARY_CHECKSUM (Transact-SQL)

Возвращает двоичное значение контрольной суммы, вычисленное для строки таблицы или для списка выражений. Функция BINARY_CHECKSUM может быть использована для выявления изменений строк таблицы.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

BINARY_CHECKSUM ( * | expression [ ,...n ] ) 

Аргументы

  • *
    Указывает, что вычисление выполняется для всех столбцов таблицы. При выполнении функции BINARY_CHECKSUM столбцы с несопоставимыми типами данных игнорируются. К несопоставимым типам данных относятся text, ntext, image, cursor, xml, а также несопоставимые пользовательские типы среды CLR.

  • expression
    Выражение любого типа. При выполнении функции BINARY_CHECKSUM выражения с несопоставимыми типами данных игнорируются.

Замечания

Результат, возвращаемый функцией BINARY_CHECKSUM(*) для строки таблицы, изменяется только при изменении указанной строки. Результат, возвращаемый функцией BINARY_CHECKSUM(*) для строки таблицы, изменяется при внесении большинства (но не всех) типов изменений в строку. Поэтому данную функцию можно использовать для обнаружения большинства типов изменений.

Функция BINARY_CHECKSUM может применяться к списку выражений, причем ее результаты для данного списка совпадают. Функция BINARY_CHECKSUM вернет одинаковый результат для двух любых списков выражений в том случае, если тип и байтовое представление соответствующих друг другу элементов списков совпадают. В данном случае значения NULL одинакового типа рассматриваются как значения с одинаковым байтовым представлением.

Функции BINARY_CHECKSUM и CHECKSUM похожи. Они могут быть использованы для вычисления контрольной суммы списка выражений, при этом порядок следования выражений влияет на значение результата. Порядок следования столбцов, используемый функцией BINARY_CHECKSUM(*), соответствует порядку столбцов в определении таблицы или представления. Это касается и вычисляемых столбцов.

Функции CHECKSUM и BINARY_CHECKSUM возвращают различные значения для строковых типов данных, в которых из-за локали строки с различными представлениями могут оказаться эквивалентными. К строковым типам данных относятся char, varchar, nchar, nvarchar или sql_variant (если базовый тип sql_variant является строковым типом данных). Например, функция BINARY_CHECKSUM возвращает различные результаты для строк McCavity и Mccavity. Однако при использовании функции CHECKSUM на сервере, нечувствительном к регистру, результаты для данных строк совпадают. Не следует сравнивать результаты выполнения функций CHECKSUM и BINARY_CHECKSUM.

Примеры

В следующем примере для выявления изменений в строке таблицы используется функция BINARY_CHECKSUM.

USE AdventureWorks2012;
GO
CREATE TABLE myTable (column1 int, column2 varchar(256));
GO
INSERT INTO myTable VALUES (1, 'test');
GO
SELECT BINARY_CHECKSUM(*) from myTable;
GO
UPDATE myTable set column2 = 'TEST';
GO
SELECT BINARY_CHECKSUM(*) from myTable;
GO

См. также

Справочник

Агрегатные функции (Transact-SQL)

CHECKSUM (Transact-SQL)

CHECKSUM_AGG (Transact-SQL)