Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-analysendpoint i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar det binära kontrollsummevärdet beräknat över en rad i en tabell eller över en lista med uttryck.
Transact-SQL syntaxkonventioner
Syntax
BINARY_CHECKSUM ( * | expression [ , ...n ] )
Anmärkning
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Arguments
*
Specificerar att beräkningen täcker alla tabellkolumner.
BINARY_CHECKSUM ignorerar kolumner med icke-jämförbara datatyper i sin beräkning. Icke-jämförbara datatyper inkluderar:
- markören
- image
- ntext
- text
- xml
- icke-jämförbara Common Language Runtime (CLR) användardefinierade typer
uttryck
Ett uttryck av valfri typ.
BINARY_CHECKSUM ignorerar uttryck av icke-jämförbara datatyper i sin beräkning.
Returtyper
int
Anmärkningar
BINARY_CHECKSUM(*), beräknad på en rad i en tabell, returnerar samma värde som så länge raden inte ändras senare.
BINARY_CHECKSUM uppfyller egenskaperna hos en hashfunktion: när den appliceras på två olika uttryckslistor returnerar den samma värde om motsvarande element i de två listorna har samma typ och är lika när de jämförs med operatorn lika (=)
För denna definition säger vi att nollvärden, av en specificerad typ, jämförs som lika värden. Om minst ett av värdena i uttryckslistan ändras kan även uttryckskontrollsumman ändras. Denna ändring är dock inte garanterad, så för att upptäcka om värden har ändrats bör du endast använda BINARY_CHECKSUM om din applikation tål en och annan missad ändring. Annars, överväg att använda HASHBYTES istället. Med en specificerad MD5-hashalgoritm är sannolikheten att HASHBYTES returnera samma resultat, för två olika indata, mycket lägre än BINARY_CHECKSUM.
BINARY_CHECKSUM kan operera över en lista av uttryck, och den returnerar samma värde för en specificerad lista.
BINARY_CHECKSUM applicerad på två uttryckslistor returnerar samma värde om motsvarande element i de två listorna har samma typ- och byterepresentation. För denna definition anses nullvärden av en specificerad typ ha samma byterepresentation.
BINARY_CHECKSUM och CHECKSUM är liknande funktioner. De kan användas för att beräkna ett kontrollsummevärde på en lista av uttryck, och ordningen på uttrycken påverkar det resulterande värdet. Ordningen på kolumner som används för BINARY_CHECKSUM(*) är den ordning av kolumner som anges i tabellen eller vydefinitionen. Denna ordning inkluderar beräknade kolumner.
BINARY_CHECKSUM och CHECKSUM returnera olika värden för strängdatatyperna, där locale kan göra att strängar med olika representation jämförs som lika. Strängdatatyperna är:
- tecken
- nchar
- nvarchar
- varchar
- sql_variant (om bastypen av sql_variant är en strängdatatyp)
Till exempel har strängarna McCavity och Mccavity olika BINARY_CHECKSUM värden. I kontrast, för en server CHECKSUM utan läge, returnerar samma kontrollsummevärden för dessa strängar. Du bör undvika jämförelse av CHECKSUM värden med BINARY_CHECKSUM värden.
BINARY_CHECKSUMstöder valfri längd av typen varbinary(max) och upp till 255 tecken av typen nvarchar(n) / nvarchar(max).
Examples
Detta exempel används BINARY_CHECKSUM för att upptäcka förändringar i en tabellrad.
USE AdventureWorks2022;
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