我的表包含一个字段密码,其大小为Varchar(70)。但是当我输入大小为40的密码的哈希值时,最后几个字符会被截断。我正在使用SQL SERVER 2005.为什么会这样?
答案 0 :(得分:1)
我唯一一次看到这个是你在没有指定长度的情况下转换为varchar
运行:
declare @test varchar(70)
set @test = '1111111111222222222233333333334444444444555555555566666666667777777777'
select @test
select
cast(@test as varchar) as CastedWithoutLength,
cast(@test as varchar(40)) as CastedWith40Length,
cast(@test as varchar(70)) as CastedWith70Length
CastedWithoutLength只有30个字符长,其余的都是长度设置的。