Udostępnij za pośrednictwem


BINARY_CHECKSUM (Transact-SQL)

Zwraca wartość binarnej suma kontrolna obliczona na podstawie wiersza tabela lub listy wyrażeń.BINARY_CHECKSUM może służyć do wykrywać zmian w wierszu tabela.

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • *
    Określa, że obliczaniu przez wszystkie kolumny tabela.BINARY_CHECKSUM ignoruje kolumn o typach danych noncomparable w jego obliczeń.Typy danych noncomparable: text, ntext, image, cursor, xml, a noncomparable typowych języków plików wykonywalnych (CLR) typów zdefiniowanych przez użytkownika.

  • expression
    Is wyrażenie dowolnego typu.BINARY_CHECKSUM ignoruje wyrażeń typu noncomparable danych w jej obliczeń.

Remarks

BINARY_CHECKSUM(*) obliczone na każdy wiersz tabela, zwraca taką samą wartość, jak długo wiersz nie jest modyfikowany później.BINARY_CHECKSUM(*) zwróci innej wartości dla większości, ale nie wszystkie zmiany do wiersza i może służyć do wykrywać większość modyfikacji wierszy.

BINARY_CHECKSUM mogą być stosowane za pośrednictwem listy wyrażeń, a następnie zwraca tę samą wartość dla określonej listy.BINARY_CHECKSUM stosowane przez każdy dwie listy wyrażeń zwraca taką samą wartość, odpowiadające im elementy z obu list mają ten sam reprezentacji typu i bajtów.Do tej definicji jest uznawany za samą reprezentację bajt wartości null określonego typu.

BINARY_CHECKSUM i funkcja suma kontrolna są podobne funkcje: Mogą być używane do obliczenia wartości suma kontrolna na liście wyrażeń i kolejność wyrażeń ma wpływ na wartość wynikową. Kolejność kolumn używanych dla BINARY_CHECKSUM(*) jest kolejność kolumn określone w definicji tabela lub widoku.Obejmują one kolumny obliczane.

Funkcja suma kontrolna i BINARY_CHECKSUM zwracają różne wartości dla danych typu ciąg regionalny może spowodować ciągi znaków o różnych reprezentacji porównać równe.Typy danych ciąg char, varchar, nchar, nvarchar, lub sql_variant (jeśli jest to typ podstawy sql_variant jest to typ danych ciąg znaków). Na przykład wartości BINARY_CHECKSUM ciągi "" McCavity"i"Mccavity"są różne.Z drugiej strony na serwerze bez uwzględniania wielkości liter, funkcja suma kontrolna zwraca te same wartości suma kontrolna dla tych ciągów.Funkcja suma kontrolna wartości nie powinna być porównywana z wartościami BINARY_CHECKSUM.

Przykłady

W poniższym przykładzie użyto BINARY_CHECKSUM do wykrywać zmian w wierszu tabela.

USE AdventureWorks;
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