Aracılığıyla paylaş


sağlama toplamı (Transact-SQL)

Sağlama toplamı değeri satırı hesaplanan döndürür bir tablo, veya bir ifadeler listesinde.sağlama toplamı karma dizinler oluşturmadaki kullanılmak üzere hazırlanmıştır.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • *
    Hesaplama, tablonun tüm sütunlarını üzerinde olduğunu belirtir.sağlama toplamı, herhangi bir sütun noncomparable veri türü ise hata döndürür.Noncomparable veri türleri text, ntext, imageXML, ve cursorhem de sql_variant bir önceki türleri ile kendi taban türü.

  • expression
    Iş bir ifade noncomparable veri türü dışında herhangi bir tür.

Dönüş Türleri

int

Remarks

CHECKSUM bağımsız değişkenler listesini, sağlama toplamı adlı bir karma değer hesaplar.Karma değeri karma dizinler oluşturmadaki kullanılmak üzere hazırlanmıştır.sağlama toplamı bağımsız sütun ve dizin hesaplanan sağlama toplamı değeri oluşturulur, sonuç karma dizinidir.Bu sütunları eşitlik aramalar için kullanılabilir.

sağlama toplamı karma işlev özelliklerini karşılar: Iki liste, karşılık gelen elemanları aynı türe sahip ve eşittir (=) işlecini kullanarak karşılaştırıldığında eşit herhangi iki ifade listesi üzerinde uygulanan sağlama toplamı aynı değeri verir. Bu tanımı için belirtilen türde null değerleri karşılaştırmak için olarak eşit kabul edilir.Ifade listedeki değerlerden herhangi birini değiştirirse, sağlama toplamı listesinin genellikle de değiştirir.Ancak, sağlama toplamı değişmez küçük olma olasılığı vardır.Bu nedenle, değerleri değişip değişmediğini, uygulama bazen bir değişiklik eksik edebiliyorsanız sürece algılamaya sağlama toplamı kullanma önerilmez.Kullanmayı düşünün HashBytes yerine.Bir MD5 karma algoritmasını belirtildiğinde, iki farklı bir giriş için aynı sonucu döndüren HashBytes sağlama toplamı, çok alt olasılığıdır.

Ifadeler sırasını sağlama toplamı sonuç değerini etkiler.Tablo veya görünüm tanımında belirtilen sütunların düzenini sağlama toplamı(*) ile kullanılan sütunlar sırasıdır.Bu hesaplanan sütunlar içerir.

Örnekler

Aşağıdaki örnekler kullanma CHECKSUM karma dizinler oluşturmak için . Tablo için hesaplanan bir sağlama toplamı bir sütun ekleyerek karma dizini oluşturulmuş dizini Oluşturulmakta olan ve sonra da sağlama toplamı sütun üzerinde dizin oluşturma.

-- Create a checksum index.
SET ARITHABORT ON;
USE AdventureWorks; 
GO
ALTER TABLE Production.Product
ADD cs_Pname AS CHECKSUM(Name);
GO
CREATE INDEX Pname_index ON Production.Product (cs_Pname);
GO

Sağlama toplamı dizin sıralanacak sütun uzun karakter sütun olduğunda, özellikle dizin oluşturma hızı artırmak için bir karma dizini kullanılabilir.Sağlama toplamı dizin eşitlik aramalar için kullanılabilir.

/*Use the index in a SELECT query. Add a second search 
condition to catch stray cases where checksums match, 
but the values are not the same.*/
SELECT * 
FROM Production.Product
WHERE CHECKSUM(N'Bearing Ball') = cs_Pname
AND Name = N'Bearing Ball';
GO

hesaplanan sütun üzerinde dizin oluşturma, sağlama toplamı sütun ve herhangi bir değişiklik materializes ProductName değer, sağlama toplamı sütuna aktarılacaktır. Alternatif olarak, dizin doğrudan dizine sütun oluşturulmuş.Uzun bir anahtar değerleri varsa, ancak, normal bir dizin bir sağlama toplamı dizin yaný sýra gerçekleştirmek kullanılmaz.