0

我正在使用 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

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

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

4

1 回答 1

1
SELECT HashBytes('SHA1', CONVERT(nvarchar,'вася пупкин' collate Cyrillic_General_CS_AS)) ;
于 2015-10-08T09:47:38.437 回答