CHECKSUM 和 BINARY_CHECKSUM 的区别

简介:

CHECKSUM 和 BINARY_CHECKSUM 的区别


1. 在对字符串类型生成的值中。

 

例如,在不区分大小写(Case Insensitive,简称CI)的 SQL Server 实例中:

BINARY_CHECKSUM 对于字符串“DECIPHER”和“decipher”返回的值就不同。

CHECKSUM 对于字符串“DECIPHER”和“decipher”返回的值就相同。

 

1
2
3
4
5
SELECT  DATABASEPROPERTYEX( 'demo' 'COLLATION' AS  CollationSetting;
USE demo
GO
SELECT  BINARY_CHECKSUM( 'DECIPHER' ), BINARY_CHECKSUM( 'decipher' );
SELECT  CHECKSUM( 'DECIPHER' ), CHECKSUM( 'decipher' );

 

clip_image002

 

2. 在表达式比较中。

 

如果两个表达式具有相同的类型和字节表示,那么对于 BINARY_CHECKSUM 将返回相同的值。

例如,BINARY_CHECKSUM 对于“2Volvo Director 20”和“3Volvo Director 30”将会返回相同的值。

而 CHECKSUM 函数不仅评估类型,而且还比较两个字符串是否相等,只有相等的才被返回。

 

1
2
3
4
5
6
USE demo
GO
SELECT  CHECKSUM( '2Volvo Director 20' ), BINARY_CHECKSUM( '2Volvo Director 20' );
SELECT  CHECKSUM( '3Volvo Director 30' ), BINARY_CHECKSUM( '3Volvo Director 30' );
SELECT  CHECKSUM( '4Volvo Director 40' ), BINARY_CHECKSUM( '4Volvo Director 40' );
GO

 

clip_image004













本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1607407 ,如需转载请自行联系原作者



相关文章
|
4月前
|
关系型数据库 MySQL
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
305 0
|
关系型数据库 MySQL
pt-table-checksum原理详解
环境 MySQL: MySQL 5.6.27 OS: centos 6.6 tool: pt-table-checksum 2.2.15 它能做什么 业界最流行的MySQL主从数据对比工具,数据一致性检测最好的的工具,没有之一 如何使用 ./pt-table-che
7331 0
|
11月前
|
关系型数据库 数据库 索引
pt-table-checksum
pt-table-checksum是目前可以说是最好的查看主从一致性的工具 先来个使用例子,有助快速上手使用 在主库执行:mysql>GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON .
1643 0
|
关系型数据库 MySQL 数据库
|
算法 数据安全/隐私保护 SQL