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

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

    返回對表中的行或表達(dá)式列表計算的二進(jìn)制校驗值。BINARY_CHECKSUM 可用于檢測表中行的更改。



    語法


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



    參數(shù)


    *



    指定對表中的所有列進(jìn)行計算。BINARY_CHECKSUM 在計算中忽略具有不可比數(shù)據(jù)類型的列。不可比數(shù)據(jù)類型是 text、ntext、image、cursor 以及基本類型為前 4 個數(shù)據(jù)類型之一的 sql_variant



    expression



    任何類型的表達(dá)式。BINARY_CHECKSUM 在計算中忽略具有不可比數(shù)據(jù)類型的表達(dá)式。



    注釋


    在表中任一行上計算的 BINARY_CHECKSUM(*) 返回相同的值,只要隨后沒有修改行。BINARY_CHECKSUM(*) 將為大多數(shù)(但不是全部)行更改返回不同的值,并可用于檢測大多數(shù)行修改。



    BINARY_CHECKSUM 可應(yīng)用在表達(dá)式列表上,并為給定的列表返回相同的值。如果任意兩個表達(dá)式列表的對應(yīng)元素具有相同的類型和字節(jié)表示法,則在這兩個列表上應(yīng)用的 BINARY_CHECKSUM 將返回相同的值。對于此定義,特定類型的 NULL 值被認(rèn)為具有相同的字節(jié)表示法。



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



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



    示例


    A.使用 BINARY_CHECKSUM 檢測表中一行的改變。


    本例使用 BINARY_CHECKSUM 來檢測 Northwind 數(shù)據(jù)庫的 Products 表中一行的改變。



    /*Get the checksum value before the values in the specific rows (#13-15) are changed.*/
    USE   Northwind
    GO
    CREATE   TABLE TableBC (ProductID int, bchecksum int)
    INSERT   INTO TableBC
          SELECT   ProductID, BINARY_CHECKSUM(*)
          FROM     Products
    /*TableBC contains a column of 77 checksum values corresponding to each row in the Products table.*/

    --A large company bought products 13-15.
    --The new company modified the products names and unit prices.
    --Change the values of ProductsName and UnitPrice for rows 13, 14, and 15 of the Products table.*/
    UPDATE   Products
    SET   ProductName='Oishi Konbu', UnitPrice=5
    WHERE   ProductName='Konbu'

    UPDATE   Products
    SET   ProductName='Oishi Tofu', UnitPrice=20
    WHERE   ProductName='Tofu'

    UPDATE   Products
    SET   ProductName='Oishi Genen Shouyu', UnitPrice=12
    WHERE   ProductName='Genen Shouyu'

    --Determine the rows that have changed.
    SELECT   ProductID
    FROM     TableBC
    WHERE   EXISTS   (
        SELECT   ProductID
        FROM     Products
        WHERE     Products.ProductID = TableBC.ProductID
        AND   BINARY_CHECKSUM(*) <> TableBC.bchecksum)


    下面是結(jié)果集:



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