Aracılığıyla paylaş


Sağlama toplamı (Transact-SQL)

Döndürür, sağlama toplamı değeri tablobir satırında veya bir ifadeler listesinde hesaplanır.checksum karma dizinler oluşturmak amacıyla hazırlanmıştır.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • *
    Hesaplama tablotüm sütunlar üzerinde olduğunu belirtir.Herhangi bir sütun noncomparable veri türü ise checksum hata verir.Noncomparable veri türleri text, ntext, image, xml, ve cursorve de sql_variant herhangi birinde önceki türleri olarak temel alt türü.

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

Dönüş Türleri

int

Açıklamalar

checksum sağlama toplamı, bağımsız değişkenler listesini adlı bir karma değer hesaplar.Karma değeri karma dizinler oluşturmak amacıyla hazırlanmıştır.Bağımsız değişkenler için sağlama toplaması oluşturma sütun ve dizin hesaplanan sağlama toplamı değeri yerleşik olarak bulunan, sonucu bir karma bir dizindir.Bu eşitlik arar sütunlar üzerinde kullanılabilir.

checksum karma işlevözelliklerini karşılar: İki listelere karşılık gelen elemanları aynı türe sahip ve eşittir (=) işleçkullanarak karşılaştırıldığında eşit herhangi iki ifadeler listesi uygulanan sağlama ayný deðeri döndürür.Bu tanımı, belirli tür null değerleri karşılaştırmak için eşit olarak kabul edilir.ifade listedeki değerlerden biri değişirse, sağlama toplamı listesinin genellikle de değiştirir.Ancak, sağlama toplamı değişmez küçük bir şansı vardır.Bu nedenle, değerleri değiştirmiş olsa da, uygulamanızın bir değişiklik bazen eksik edebiliyorsanız sürece sağlama algılamak kullanmanızı öneririz değil.Kullanmayı HashBytes onun yerine.MD5 karma algoritmasını belirtildiğinde, iki farklı giriş için aynı sonucu döndüren HashBytes çok daha düşük olan checksum olasılığıdır.

Sonuç değerini sağlama ifadeler sırasını etkiler.checksum(*) ile kullanılan sütunları tablo ya da Görünüm tanımında belirtilen sütunların sırasını sırasıdır.Bu hesaplanan sütunlar içerir.

Örnekler

Aşağıdaki örnekler kullanarak CHECKSUM için yapı karma dizinler.Karma dizin tablo sağlama toplamıhesaplanansütun ekleyerek oluşturulan dizini Oluşturulmakta olan ve sonra Dizin sağlama toplamısütunoluşturma.

-- Create a checksum index.
SET ARITHABORT ON;
USE AdventureWorks2008R2; 
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 karma dizin olarak sıralanacak sütun uzun karakter sütunolduğunda özellikle dizin oluşturma hızını artırmak için kullanılabilir.Eşitlik arar sağlama toplamı dizin kullanılır.

/*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

Hesaplanmış bir sütun üzerinde dizin oluşturma gerçeğe sağlama toplamı sütunve herhangi bir değişiklik ProductName sağlama toplamı sütundeğeri yayılır.Alternatif olarak, dizine doğrudan sütun üzerinde dizin oluşturulabilir.anahtar değerlerini uzun, ancak normal bir dizin sağlama toplamı dizin olarak gerçekleştirmek kullanılmaz.