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'
);
|
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
|
本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1607407 ,如需转载请自行联系原作者