【问题标题】:T-SQL HASHBYTES function and collationT-SQL HASHBYTES 函数和排序规则
【发布时间】:2013-03-07 09:07:43
【问题描述】:

我正在使用 SQL Server 2012 并有一个字段定义为的表:

NVARCHAR(32)

但需要存放在里面

NVARCHAR(1024)

值,我无法更改列长。

我有一个将填充此字段的程序。同时,如果有这个值的字段,它就会“做某事”,如果有这个值的字段,它就会“什么都不做”。

为了解决长度问题我决定使用HashBytes函数如下:

DECLARE @HashThis nvarchar(1024);
SELECT @HashThis = CONVERT(nvarchar(1024),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA1', @HashThis);
GO

我已经读过,根据您的数据库排序规则,您可能会为相同的值返回不同的哈希值。那么,有没有办法为函数指定一个排序规则,以便不依赖于数据库排序规则。

另外,我的想法有问题吗?

【问题讨论】:

    标签: tsql function hash sql-server-2012 collation


    【解决方案1】:
    SELECT HashBytes('SHA1', CONVERT(nvarchar,'вася пупкин' collate Cyrillic_General_CS_AS)) ;
    

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 2011-04-17
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 2019-10-24
      • 2011-05-05
      相关资源
      最近更新 更多