CHECKSUM computes a
hash value, called the checksum, over its list of arguments. The hash value is
intended for use in building hash indexes. If the arguments to CHECKSUM are
columns, and an index is built over the computed CHECKSUM value, the result is
a hash index. This can be used for equality searches over the columns.

CHECKSUM satisfies the
properties of a hash function: CHECKSUM applied over any two lists of
expressions returns the same value if the corresponding elements of the two
lists have the same type and are equal when compared using the equals (=)
operator. For this definition, null values of a specified type are considered
to compare as equal. If one of the values in the expression list changes, the
checksum of the list also generally changes. However, there is a small chance
that the checksum will not change. For this reason, we do not recommend using
CHECKSUM to detect whether values have changed, unless your application can
tolerate occasionally missing a change. Consider using HashBytes instead. When
an MD5 hash algorithm is specified, the probability of HashBytes returning the
same result for two different inputs is much lower than that of CHECKSUM.

The order of
expressions affects the resultant value of CHECKSUM. The order of columns used
with CHECKSUM(*) is the order of columns specified in the table or view
definition. This includes computed columns.

## No comments:

## Post a Comment