标签归档:binary_checksum

mssql sqlserver checkSum同binary_checksum函数用法区别


摘要:
下文讲述checksum同binary_checksum函数生成二进制校验值之间的区别,如下所示:
实验环境:
sqlserver 2008 R2

区别1:
区分大小写
checkSum对大小写不敏感,对大小写不同的字符串生成相同的校验值
binary_checksum对大小写非常敏感,当一个字符串大小写不同时,生成的校验值也不同,
———————-
区别2:
生成校验值的方式不同
checksum对值生成校验值
binary_checksum关键字,对字段的二进制生成校验值,如果两个表达式具有相同的类型和字节,那么binary_checksum将返回相同的值。
———————–
例:

   ---例1:大小写验证
select checksum('mao'),checksum('Mao') 
---checksum输出相同的校验值
select binary_checksum('mao'),binary_checksum('Mao')  
---binary_checksum输出不同的校验值

--例2:
select checksum('3mao'),checksum('2Mao') 
 
select binary_checksum('1maomao 10'),binary_checksum('2maomao 20')  
---不同的值,但是具有相同的binary_checksum校验值

mssql_sqlserver_checksum同binary_checksum区别应用简介

mssql_sqlserver_checksum同binary_checksum区别应用简介



既:比较列值是否发生变化时,应该分别采用binary_checksum和checksum两个函数同时进行计算校验值来进行相关判断

mssql sqlserver BINARY_CHECKSUM系统函数的用法简介


摘要:
BINARY_CHECKSUM系统函数用于检查表达式中的二进制校验值。
参数说明:
表达式:可以为列名也可以为*
binary_checkSum适用场景:
检测字段值是否发生变化,
检测数据表中行数据是否发生变化


例:
BINARY_CHECKSUM 系统函数举例应用说明:

create table test (keyId int identity,info varchar(20))
go
insert into test(info)values('a'),('b'),('c'),('d'),('e')
go
select binary_checksum(info) as [列二进制校验证],
binary_checksum(*) as [行二进制校验证],* from test 
go
--变更数据
update test set info ='test' where keyId =2
go
select binary_checksum(info) as [列二进制校验证],
binary_checksum(*) as [行二进制校验证],* from test 
go

go
truncate table test 
drop     table test 
 
mssql_sqlserver_binary_checksum二进制校验值生成方法

mssql_sqlserver_binary_checksum二进制校验值生成方法