Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLAzure Synapse Analytics
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrátí binární kontrolní součet vypočítaný přes řádek tabulky nebo přes seznam výrazů.
Syntaxe
BINARY_CHECKSUM ( * | expression [ , ...n ] )
Poznámka:
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Arguments
*
Specifikuje, že výpočet pokrývá všechny sloupce tabulky.
BINARY_CHECKSUM při výpočtu ignoruje sloupce nesrovnatelných datových typů. Nesrovnatelné typy dat zahrnují:
- kurzoru
- image
- ntext
- text
- xml
- Nesrovnatelné uživatelsky definované uživatelské typy v běžném jazyce Common Language (CLR)
expression
Výraz libovolného typu.
BINARY_CHECKSUM při výpočtu ignoruje výrazy nesrovnatelných datových typů.
Návratové typy
int
Poznámky
BINARY_CHECKSUM(*), vypočítán na libovolném řádku tabulky, vrací stejnou hodnotu, pokud řádek není později upraven.
BINARY_CHECKSUM splňuje vlastnosti hashovací funkce: při aplikaci na libovolné dva seznamy výrazů vrací stejnou hodnotu, pokud odpovídající prvky obou seznamů mají stejný typ a jsou stejné při porovnání pomocí operátoru rovno (=).
Pro tuto definici říkáme, že nulové hodnoty určitého typu se srovnávají jako stejné hodnoty. Pokud se alespoň jedna z hodnot v seznamu výrazů změní, může se změnit i kontrolní součet výrazů. Tato změna však není zaručena, a proto byste měli pro zjištění, zda se hodnoty změnily, používat BINARY_CHECKSUM pouze tehdy, pokud vaše aplikace snese občasnou přehlédnutou změnu. Jinak zvažte použití HASHBYTES místo toho. U specifikovaného MD5 hashovacího algoritmu je pravděpodobnost, že vrátí HASHBYTES stejný výsledek pro dva různé vstupy, mnohem nižší než .BINARY_CHECKSUM
BINARY_CHECKSUM může pracovat nad seznamem výrazů a vrací stejnou hodnotu pro daný seznam.
BINARY_CHECKSUM aplikované na libovolné dva seznamy výrazů vrací stejnou hodnotu, pokud odpovídající prvky obou seznamů mají stejný typ a reprezentaci bajtů. Pro tuto definici se nulové hodnoty určitého typu považují za stejné jako bajtové.
BINARY_CHECKSUM a CHECKSUM mají podobné funkce. Lze je použít k výpočtu hodnoty kontrolního součtu na seznamu výrazů a pořadí výrazů ovlivňuje výslednou hodnotu. Pořadí sloupců použitých pro BINARY_CHECKSUM(*) je pořadí sloupců specifikované v definici tabulky nebo pohledu. Toto uspořádání zahrnuje i vypočítané sloupce.
BINARY_CHECKSUM a vracejí CHECKSUM různé hodnoty pro datové typy řetězců, kde lokalita může způsobit, že řetězce s různou reprezentací se porovnávají jako stejné. Typy dat řetězců jsou:
- znak
- nchar
- nvarchar
- varchar
- sql_variant (pokud je základní typ sql_variant datový typ řetězce)
Například řetězce McCavity a mají Mccavity různé BINARY_CHECKSUM hodnoty. Naopak u serveru bez rozlišení na velká písmena vrací CHECKSUM stejné hodnoty kontrolního součtu pro tyto řetězce. Měli byste se vyhýbat srovnávání CHECKSUM hodnot s hodnotami BINARY_CHECKSUM .
BINARY_CHECKSUMPodporuje libovolnou délku typu varbinary(max) a až 255 znaků typu nvarchar(n) / nvarchar(max).
Examples
Tento příklad slouží BINARY_CHECKSUM k detekci změn v řádku tabulky.
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
Související obsah
- agregační funkce
(Transact-SQL) - CHECKSUM_AGG (Transact-SQL)
- KONTROLNÍ SOUČET (Transact-SQL)
- HASHBYTES (Transact-SQL)