sql会出现空格的问题

情况如下:
1。本人不太明白sql字段char和text,ntext的区别。在sql,char的字符我也可以定义大小大于255。
2。好像我定义某个字段大小为1000,但是如果实际我该字段大小不够1000的时候,sql会自动用空格弥补。这样,我页面便会出现很多非中断字符。
如何解决?
 
帮助:
尽量使用nvarchar,ntext,int,datatime几种类型,boolen类型使用bit就可以了。

说明一下各种类型的特征,如果有错误各位请指正:
char类型:如果定义为20长,字符窜没有到20,后面用空格补齐,如果超过20,就截取前面20个字符,后面的丢失。适合与使用固定长度数据的地方,比如邮政编码。只能保存非unicode数据,最大8000字符。
前面加上n表示可以保存unicode类型数据。
nvarchar类型:可以保存unicode数据,最大4000,可变长度,超过使用ntext.

nchar(n)
包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。nchar 在 SQL-92 中的同义词为 national char 和 national character。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。

如果希望列中所有数据项的大小接近一致,则使用 nchar。
如果希望列中数据项的大小差异很大,则使用 nvarchar。

字符串
char
固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
varchar
可变长度的非 Unicode 数据,最长为 8,000 个字符。
text
可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。
Unicode 字符串
nchar
固定长度的 Unicode 数据,最大长度为 4,000 个字符。
nvarchar
可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。
ntext
可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

关于申请nvarchar长度的问题,有2种说法,一种是申请尽量长,他会根据实际长度自动缩短,另一种是申请尽量短,他会根据长度自动增长,不知道那种正确,我是认为应该申请尽量长。
 

评论

发表新评论

此内容将保密,不会被其他人看见。
点击刷新验证码
  • 可用的 UBB 标签:
  • 留言最长字数:1000。