亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >CHECKSUM 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    返回在表的行上或在表達(dá)式列表上計算的校驗值。CHECKSUM 用于生成哈希索引。



    語法


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



    參數(shù)


    *



    指定在表的所有列上進(jìn)行計算。如果有任一列是非可比數(shù)據(jù)類型,則 CHECKSUM 返回錯誤。不可比數(shù)據(jù)類型是 text、ntext、imagecursor 以及基本類型為前 4 個數(shù)據(jù)類型之一的 sql_variant。



    expression



    是除非可比數(shù)據(jù)類型之外的任何類型的表達(dá)式。



    返回類型


    int



    注釋


    CHECKSUM 在其參數(shù)列表上計算一個稱為校驗值的哈希值。此哈希值用于生成哈希索引。如果 CHECKSUM 的參數(shù)是列,且在計算的 CHECKSUM 值上生成索引,則其結(jié)果是可用于在列上等價搜索的哈希索引。



    CHECKSUM 滿足哈希函數(shù)的下列屬性:在使用等于 (=) 運算符比較時,如果兩個列表的相應(yīng)元素具有相同類型且"相等",則在任何兩個表達(dá)式列表上應(yīng)用的 CHECKSUM 將返回同一值。這種定義的目的在于:給定類型的 NULL 值被作為"相等"進(jìn)行比較。如果表達(dá)式列表中的某個值發(fā)生變化,那么列表的校驗值通常也會變化。但只在極少數(shù)情況下,校驗值會保持不變。



    BINARY_CHECKSUM 和 CHECKSUM 具有相似的功能:它們可用于計算表達(dá)式列表上的校驗值,且表達(dá)式的順序?qū)⒂绊懡Y(jié)果值。在 CHECKSUM(*) 中使用的列順序是在表或視圖定義中指定的列順序,包括計算列。



    CHECKSUM 和 BINARY_CHECKSUM 僅為字符串?dāng)?shù)據(jù)類型返回不同的值,這類字符串的區(qū)域設(shè)置可能導(dǎo)致具有不同表示法的字符串進(jìn)行等值比較。字符串?dāng)?shù)據(jù)類型是 char、varchar、nchar、nvarcharsql_variant(如果其基本類型是字符串?dāng)?shù)據(jù)類型)。例如,字符串"McCavity"和"Mccavity"的 BINARY_CHECKSUM 值不同。反之,在不區(qū)分大小寫的服務(wù)器中,上述字符串的 CHECKSUM 返回相同的校驗值。CHECKSUM 值不應(yīng)與 BINARY_CHECKSUM 值進(jìn)行比較。



    示例


    使用 CHECKSUM 生成哈希索引


    CHECKSUM 函數(shù)可以用于生成哈希索引。通過將計算校驗值列添加到索引的表中,然后在校驗值列上生成索引來生成哈希索引。



    -- Create a checksum index.
    SET ARITHABORT ON
    USE Northwind
    GO
    ALTER TABLE Products
    ADD cs_Pname AS checksum(ProductName)
    CREATE INDEX Pname_index ON Products (cs_Pname)


    校驗值索引可用作哈希索引,尤其是當(dāng)要索引的列為較長的字符列時可以提高索引速度。校驗值索引可用于等價搜索。



    /*Use the index in a SELECT query. Add a second search 
    condition to catch stray cases where checksums match,
    but the values are not identical.*/
    SELECT *
    FROM Products
    WHERE checksum(N'Vegie-spread') = cs_Pname
    AND ProductName = N'Vegie-spread'


    在計算列上創(chuàng)建的索引將具體化為校驗值列,對 ProductName 值所做的任何更改將傳播到校驗值列。索引也可以直接建立在索引的列上。然而,如果鍵值較長,則很可能不執(zhí)行校驗值索引甚至常規(guī)索引。

    相關(guān)文章
    本頁查看次數(shù):