sql BINARY_CHECKSUM - sqlserver -

sql BINARY_CHECKSUM

时间:2010-01-27 00:09:34   来源:   评论:加载中...   点击:加载中...
BINARY_CHECKSUM返回对表中的行或表达式列表计算的二进制校验值。BINARY_CHECKSUM 可用于检测表中行的更改。语法BINARY_CHECKSUM ( * |...

BINARY_CHECKSUM

返回对表中的行或表达式列表计算的二进制校验值。BINARY_CHECKSUM 可用于检测表中行的更改。

语法

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

参数

*

指定对表中的所有列进行计算。BINARY_CHECKSUM 在计算中忽略具有不可比数据类型的列。不可比数据类型是 textntextimagecursor 以及基本类型为前 4 个数据类型之一的 sql_variant

expression

任何类型的表达式。BINARY_CHECKSUM 在计算中忽略具有不可比数据类型的表达式。

注释

在表中任一行上计算的 BINARY_CHECKSUM(*) 返回相同的值,只要随后没有修改行。BINARY_CHECKSUM(*) 将为大多数(但不是全部)行更改返回不同的值,并可用于检测大多数行修改。

BINARY_CHECKSUM 可应用在表达式列表上,并为给定的列表返回相同的值。如果任意两个表达式列表的对应元素具有相同的类型和字节表示法,则在这两个列表上应用的 BINARY_CHECKSUM 将返回相同的值。对于此定义,特定类型的 NULL 值被认为具有相同的字节表示法。

BINARY_CHECKSUM 和 CHECKSUM 具有相似的功能:它们可用于计算表达式列表上的校验值,且表达式的顺序将影响结果值。BINARY_CHECKSUM(*) 使用的列顺序是表或视图定义中指定的列顺序,包括计算列。

CHECKSUM 和 BINARY_CHECKSUM 仅为字符串数据类型返回不同的值,这类字符串的区域设置可能导致具有不同表示法的字符串进行等值比较。字符串数据类型为 char、varchar、nchar、nvarcharsql_variant(如果 sql_variant 的基本类型是字符串数据类型)。例如,字符串"McCavity"和"Mccavity"的 BINARY_CHECKSUM 值不同。反之,在不区分大小写的服务器中,上述字符串的 CHECKSUM 返回相同的校验值。CHECKSUM 值不应与 BINARY_CHECKSUM 值进行比较。

示例
A.使用 BINARY_CHECKSUM 检测表中一行的改变。

 

create table cha(col1 int identity(1,1),col2 varchar(10))---基表
go
insert into cha values('a')
insert into cha values('b')
insert into cha values('c')
insert into cha values('d')
insert into cha values('e')
insert into cha values('f')
insert into cha values('g')
insert into cha values('h')
go
select *
from cha
go
create table tx(col int identity(1,1), chsum int)---验证表
go
set identity_insert tx on
insert into tx(col,chsum)
select col1,binary_checksum(*)
from cha
go
select * --- 查看验证表
from tx
select *
from cha
go
----更新基表,对第一行和第三行记录进行更新---
update cha
set col2='a1'
where col1=1
go
update cha
set col2='c1'
where col1=3
go
----查看基表哪些行改变了---
SELECT   col
FROM      tx
WHERE   EXISTS   (
      SELECT   col1
      FROM      cha
      WHERE      cha.col1 = tx.col
      AND   BINARY_CHECKSUM(*) <> tx.chsum)


相关热词搜索:

 
上一篇:Sql开启Ad Hoc Distributed Queries
下一篇:sql插入主键键值primaryKeyVlaue
收藏 将此文推荐给朋友
分享到: