sql server 2005:值截断

问题描述:

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

+0

你能提供示例代码和有问题的列的CREATE语句吗? – 2009-04-26 11:14:43

我已经看到了这个问题的唯一时间是当你施放为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个字符长,其余的将是什么的长度设置为。