sql server 2005:值截断

时间:2009-04-26 11:02:32

标签: sql sql-server-2005

我的表包含一个字段密码,其大小为Varchar(70)。但是当我输入大小为40的密码的哈希值时,最后几个字符会被截断。我正在使用SQL SERVER 2005.为什么会这样?

1 个答案:

答案 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个字符长,其余的都是长度设置的。