sqlserver7的小小问题,请帮忙?

iwin 2000-09-05 02:33:00
现有一个字段的数据,里面的数据长度最多为10个字符,我把此字段定义成nchar(10)和nvarchar(50)有和不同
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoyiqian 2000-09-06
  • 打赏
  • 举报
回复
定义成nchar(10)时,若数据长度超过10,则截去超出部分,若小于10则输入字符串后面自动填充空格.最长不超过8000.

定义成nvarchar(50)时,若长度超过50,则系统不会自动截去超出部分,而会报错;在不超过50的情况下,存储长度随数据实际长度变化而变化.
注意:以上说明便不表明谁好或谁差,要根据实际情况来决定选用何种类型.

容易忽略处: nvarchar(n)类型在数据存储处理时实际要多占一个字节用来表明实际数据的实际长度.举例来说: 若定义员工工号,工号长度固定为4位,则不应该定义为nvarchar(4),而应定义为nchar(4),虽然表面上都是占4位字节,其实在计算机实际处理时nvarchar(4)将用掉5个字节




iwin 2000-09-06
  • 打赏
  • 举报
回复
谢谢ghj1976和guoyiqian的回答!

我在“数据库开发”栏目中还有几道问题没有得到满意的答复,能否帮我看看?是关于MS SQLSERVER7.0的。
蝈蝈俊 2000-09-05
  • 打赏
  • 举报
回复
我记得是nchar(10) 是不管你的数据表中字段有多长,存储数据的长度都是10 (空余部分用空格补充)

nvarchar(50) 则相反,有多长就是多长,不用空格补充。
iwin 2000-09-05
  • 打赏
  • 举报
回复
ghj1976:
那是不是虽然我定义nvarchar(50)最大长度比较大,但是其所占空间却有可能比nchar(10)还小?那岂不是定义成nvarchar(1000)更好?

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧