TSql HASHBYTES 用法
2015-05-26 12:48
89 查看
HashBytes是比CheckSum精确度更高的函数,HashBytes 只能有一个输入参数,并且参数的数据类型是varchar、nvarchar 或 varbinary。Hash value的计算跟Data type相关. The hash is computed differently based on the data type(varchar, nvarchar).
一:HashBytes Syntax
参数
'<algorithm>'
标识用于对输入执行哈希操作的哈希算法。 这是必选参数,无默认值。 需要使用单引号。
@input
指定包含要对其执行哈希操作的数据的变量。 @input 的数据类型为 varchar、nvarchar 或 varbinary。
' input '
指定一个表达式,其计算结果为要对其执行哈希操作的字符或二进制字符串。
返回值类型
Varbinary
二:Examples
Example1,相同的varchar产生相同的hash value
Example2, hash的计算跟Data Type 有关
The hash is computed differently based on the data type(varchar, nvarchar).
参考文档:
https://msdn.microsoft.com/en-us/library/ms174415(v=sql.110).aspx
一:HashBytes Syntax
HASHBYTES ( '<algorithm>', { @input | 'input' } ) <algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
参数
'<algorithm>'
标识用于对输入执行哈希操作的哈希算法。 这是必选参数,无默认值。 需要使用单引号。
@input
指定包含要对其执行哈希操作的数据的变量。 @input 的数据类型为 varchar、nvarchar 或 varbinary。
' input '
指定一个表达式,其计算结果为要对其执行哈希操作的字符或二进制字符串。
返回值类型
Varbinary
二:Examples
Example1,相同的varchar产生相同的hash value
CREATE TABLE [dbo].[test] ( [code] [int] NULL, [name] [varchar](10) NULL, [txt] [nvarchar](10) NULL ) insert into dbo.test(code) values(1) print HASHBYTES('MD5','1') --0xC4CA4238A0B923820DCC509A6F75849B select * from dbo.test where HASHBYTES('MD5',cast(code as varchar))=0xC4CA4238A0B923820DCC509A6F75849B
Example2, hash的计算跟Data Type 有关
The hash is computed differently based on the data type(varchar, nvarchar).
select HASHBYTES('SHA1',N'123abc') as HashNChar, HASHBYTES('SHA1','123abc') as HashChar;
参考文档:
https://msdn.microsoft.com/en-us/library/ms174415(v=sql.110).aspx
相关文章推荐
- TSql HierarchyID 数据类型用法
- TSql stuff 函数用法
- TSQL中CHECKSUM函数的用法
- TSQL语句中的Like用法
- TSql bulk insert 用法
- TSQL Merge 用法
- TSQL Identity 用法全解
- TSQL Identity 用法全解
- TSql Top 用法
- TSQL Identity 用法全解
- TSql Output 用法
- TSQL语言基础笔记之单表查询
- linux字符串匹配中“组”(\1 \2……)的用法
- python-numpy的基本用法02
- python+read()+、readline()和+readlines()的区别和用法
- 关于Scanner的详细用法
- mybatis动态SQL标签的用法
- HQL 语言基本用法
- C语言中可变参数的用法
- strcpy ,strncpy ,strlcpy地用法