sql中nchar与nvarchar的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中nchar与nvarchar的问题相关的知识,希望对你有一定的参考价值。
declare @stuid nvarchar(10)
select top 1 @stuid=stuid from stuinfo order by stuid desc
if(@stuid is null)
set @stuid='0001'
else
begin
set @stuid='000'+convert(nvarchar,convert(int,(@stuid+1)))
set @stuid=right(@stuid,4)
print @stuid
end
如上面的存储过程
可以输出0002
但如果换成nchar(10)的话
无法输出数据
必须是nchar(4)才可以
怎么回事???
为什么nvarchar可以呢???
所有你选nchar(10)的时候出来的是4个空格。你可以去length看看
nvarchar(10)不足10位的后面不填
——-补充
当你选择nchar(4)的时候正好是0001
如果是nchar(5)那么出来的就是001
你可以试试 参考技术A nchar()是固定长度的字符
nvarchar()是可变长度的
如果是nchar(10)的话,他会自动用空格不全剩余的空位置
以上是关于sql中nchar与nvarchar的问题的主要内容,如果未能解决你的问题,请参考以下文章
浅谈SQL ServerMySQL中char,varchar,nchar,nvarchar区别
SQL Server char,varchar,nchar,nvarchar区别
SQL中char nchar varchar nvarchar text ntext的区别
SQL Server: char, nchar, varchar和nvarchar