如何解决"字符串或二进制数据将被截断。" TSQL

时间:2016-02-25 15:56:35

标签: sql sql-server tsql

我正在试验商店程序,我收到以下错误:

  

字符串或二进制数据将被截断

我正在尝试将用户信息添加到表中,我想要哈希密码。我找到了这个guide并试图让它发挥作用

代码:

DECLARE @FirstName nvarchar(20) = 'Name'
DECLARE @LastName nvarchar(20) = 'LastName'
DECLARE @Email nvarchar(50) = 'Name.LastName@hot'
DECLARE @UserPassword nvarchar(12) = 'thepass'


DECLARE @Hash VARBINARY(MAX)
DECLARE @Salt VARBINARY(4) = CRYPT_GEN_RANDOM(4)
DECLARE @UserName nvarchar(4)

SET @UserName = SUBSTRING(@FirstName, 1, 2) + SUBSTRING(@LastName, 1, 2) 



SET @Hash = 0x200 + @Salt + HASHBYTES('SHA2_512', CAST(@UserPassword AS varbinary(MAX)) + @Salt)

INSERT INTO USERS(Email,UserName,UserPassword,firstName,lastName) VALUES(@Email, @UserName, @Hash, @FirstName, @LastName)

表格如下:

enter image description here

在搜索网页后,我得到的信息是该列的哈希大小可能很大,但我检查了这是数据的结果:

  

0x0200511C118E7D3BF6F346BCE8F422B6832FDDC0A93A6C4533D79CC8776365E5D591750ADBC0587763494E7152DC68388B583F71182CA4AB6810ECD645381A7933B0785ACA8B

这是142个字符,低于500个最大值。 我做错了什么?

0 个答案:

没有答案