关于varchar

qhl9328174 2003-08-20 12:07:35
varchar[(n)]
n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

《联机丛书》既然这么说,是不是意味着,只要是varchar类型,就写为varchar(8000),而不用去估计数据的最大长度。我知道这肯定不对,要不然就不需要填n了,但是为什么这样不好?
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanpingli 2003-08-20
  • 打赏
  • 举报
回复
字符数据由字母、符号和数字字符的任意组合组成。例如,“928”、“Johnson”和“(0*&(%B99nh jkJ”都是有效的字符数据。在 Microsoft® SQL Server™ 2000 中,字符数据以 char、varchar 和 text 数据类型进行存储。

char 的存储大小按字节指定,不超过 8,000 个字节。varchar 的存储大小为输入数据的实际字节长度,也不超过 8,000 个字节。text 的存储大小取决于输入数据的长度,但最多可存储 231-1 (2,147,483,647) 个字节。

当列中各项的字符长度数时可用 varchar 类型,但任何项的长度都不能超过 8 KB。当列中各项为同一固定长度时使用 char 类型(最多 8KB)。text 数据类型的列可用于存储大于 8KB 的 ASCII 字符。例如,由于 HTML 文档均由 ASCII 字符组成且一般长于 8KB,所以用浏览器查看之前应在 SQL Server 中存储在 text 列中。

建议字符列宽度的定义不超过所存储的字符数据可能的最大长度。

若要在 SQL Server中存储国际化字符数据,请使用 nchar、nvarchar 和 ntext 数据类型。

fanpingli 2003-08-20
  • 打赏
  • 举报
回复
是的.应该够用了,要不你就用text
pengdali 2003-08-20
  • 打赏
  • 举报
回复
varchar(你声明的这个字段类型的最大长度)
如:

declare @a varchar(10)
set @a='1234567890123456'

select @a 只有10位

8000是说你在varchar(这里不能写大于8000的数字)
伍子V5 2003-08-20
  • 打赏
  • 举报
回复
用VARCHAR是占用的实际存储空间,它比CHAR要节约空间一些,但是存储速度上要慢一些。就是说如果你只需一字节空间,定义VARCHAR(8000)比VARCHAR(1),计算机要做更多的运算才能确定实际空间大小。
tjan 2003-08-20
  • 打赏
  • 举报
回复
可以这样写!但在评估数据容量的时候会造成不准确,在输入数据的时候也会产生隐含问题,因为 SQL Server 每条记录最大长度为 8060 字节,你可以建立超过 8060 的记录结构,但不能输入。

34,590

社区成员

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

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