Compartir a través de


BINARY_CHECKSUM (Transact-SQL)

Devuelve el valor binario de suma de comprobación calculado en una fila de una tabla o en una lista de expresiones. BINARY_CHECKSUM se puede utilizar para detectar cambios en una fila de una tabla.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • *
    Especifica que el cálculo se realiza en todas las columnas de la tabla. BINARY_CHECKSUM no incluye en el cálculo las columnas que tienen tipos de datos no comparables. Los tipos de datos no comparables son text, ntext, image, cursor, xml y los tipos definidos por el usuarios no comparables de Common Language Runtime (CLR).

  • expression
    Es una expresión de cualquier tipo. BINARY_CHECKSUM no incluye en el cálculo las expresiones que tienen tipos de datos no comparables.

Comentarios

BINARY_CHECKSUM(*), calculado en cualquier fila de una tabla, devuelve el mismo valor siempre que la fila no se modifique posteriormente. BINARY_CHECKSUM(*) devolverá un valor diferente para la mayoría, aunque no todos, los cambios de una fila, y se puede utilizar para detectar la mayoría de las modificaciones de fila.

BINARY_CHECKSUM se puede aplicar a una lista de expresiones y devuelve el mismo valor para una lista especificada. BINARY_CHECKSUM aplicado a dos listas de expresiones cualquiera devuelve el mismo valor si los elementos correspondientes de ambas listas tienen el mismo tipo y la misma representación de bytes. Para esta definición, los valores NULL de un tipo especificado se considera que tienen la misma representación de bytes.

BINARY_CHECKSUM y CHECKSUM son funciones similares: se pueden utilizar para calcular un valor de suma de comprobación en una lista de expresiones; el orden de las expresiones afecta al valor del resultado. El orden de las columnas utilizadas en BINARY_CHECKSUM(*) es el orden de las columnas especificado en la definición de la tabla o la vista. Incluyen columnas calculadas.

CHECKSUM y BINARY_CHECKSUM devuelven valores distintos para los tipos de datos de cadena, donde la configuración regional puede hacer que cadenas con una presentación distinta se comparen como iguales. Los tipos de datos de cadena son char, varchar, nchar, nvarchar o sql_variant (si el tipo base de sql_variant es un tipo de datos de cadena). Por ejemplo, los valores de BINARY_CHECKSUM para las cadenas "McCavity" y "Mccavity" son distintos. Por el contrario, en un servidor que no distingue entre mayúsculas y minúsculas, CHECKSUM devuelve los mismos valores de suma de comprobación para ambas cadenas. Los valores de CHECKSUM no se deben comparar con los valores de BINARY_CHECKSUM.

Ejemplos

En el siguiente ejemplo se utiliza BINARY_CHECKSUM para detectar cambios en una fila de una tabla.

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