日期:2014-05-19  浏览次数:20460 次

nvarchar 的问题,大家都来看下
Nvarchar类型不是长度可以变化的类型吗?
现在:
decalre   @i   =   INT
decalre   @k       nvarchar(5)   --这里定义的是5
set   @i   =   123456                     --6位
select   @k   =   convert(nvarchar(3),@i,102)     --这里nvarchar定义为3
print   @k

1   这段代码执行时首先提示益出,根据表面现象,我知道@i   是6位的,转化为nvarchar的形式时,和定义的3也有关系吗?nvarchar不是可以根据长度自动变化的吗?


2     即使把convert里面定义时定义为大于6的,但是,打印出的@k   只有5位,也没有根据数据的长度自动变化啊?
请高人给个解释


------解决方案--------------------
那你就定義長點吧,就可以解決了

decalre @k nvarchar(500)