开始什么都别说,先来个例子
打开sql server创建一个表:
create database testdb
go
create table test
(
name1 varchar(10),
name2 nvarchar(10)
)
go
insert into test values('一二三四五','一二三四五六七八九十') --成功
insert into test values('一二三四五六','一二三四五六七八九十') --第一个字段插入失败
insert into test values('一二三四五','一二三四五六七八九十一') --第二个字段插入失败
第一个字段对多可以插入汉字5个
第二个字段对多可以插入汉字10个
------------------------------------------------------------------------------------
insert into test values('1234567890','1234567890') --成功
insert into test values('12345678901','1234567890') --第一个字段插入失败
insert into test values('1234567890','12345678901') --第二个字段插入失败
(插入字母和一些ascii字符符号,结果一样)
第一个字段对多可以插入ascii码10个
第二个字段对多可以插入ascii码10个
---------------------------------------------------------------------------------------
insert into test values('一二三aaaa','一二三四五六七八九十') --成功
insert into test values('一二三aaaab','一二三四五六七八九十') --第一个字段插入失败
insert into test values('一二三aaaa','一二三四五六七八ab') --成功
insert into test values('一二三aaaa','一二三四五六七八abc') --第二个字段插入失败
--------------------------------------------------------------------------------------
总结:varchar类型 ascii最多可以存10个,汉字最多可以存5个
nvarchar类型 ascii和汉字最多都可以存10个
说明:varchar类型 ascii字符占一个字节,汉字占两个字节
nvarchar类型 总是一个字符占2个字节
而且:
create table test
(
name1 varchar(10), --所占空间10个字节
name2 nvarchar(10) --所占空间20个字节
)
验证:
select * from test
select name1,len(name1),name2,len(name2) from test