首页 新闻 会员 周边 捐助

在sqlserver 数据库中建表问题

0
悬赏园豆:100 [待解决问题]

请教各位大神下,我在sqlserver中建表时,所有varchar类型的列的长度值我都设置为4000,这样可以吗?

醉,只为你的主页 醉,只为你 | 初学一级 | 园豆:102
提问于:2013-09-05 19:16
< >
分享
所有回答(14)
0

那当然可以。varchar的可变长度的。

幻天芒 | 园豆:37207 (高人七级) | 2013-09-05 19:29

http://hidba.org/?p=31  有个地址,参考下。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-09-05 23:09
0

可以是可以,不过浪费空间~~

路过秋天 | 园豆:4787 (老鸟四级) | 2013-09-05 19:46
0

严格讲不可以/

数据库哪有这样设计的?你要是自己玩Demo那可以。如果你要是用于实际生产,必须根据字段内容来设置,否则数据库造成大量空间浪费/

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-09-05 20:12
0

还是根据具体需求和实际数据去设计字段,否则浪费数空间。

libaoheng | 园豆:1433 (小虾三级) | 2013-09-05 22:51
0

设置长度的目的只是为了保证有足够的空间来存储数据,避免超长时,导致数据出现问题。

所以你得计量计量该字段的数据长度有多少,然后估计个合适的值就可以了

Yu | 园豆:12990 (专家六级) | 2013-09-06 08:51
0

可以

panjk | 园豆:712 (小虾三级) | 2013-09-06 08:55
0

  开发中不建议...可设置nvarchar,http://www.cnblogs.com/shuang121/archive/2011/03/19/1988794.html你可以看看这个

Snail的梦 | 园豆:278 (菜鸟二级) | 2013-09-06 10:03
1

如果图省事,建议用nvarchar(max)

dudu | 园豆:29568 (高人七级) | 2013-09-06 10:26
0

可以设置,也不会造成空间浪费,是根据实际数据长度占用空间的。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-09-06 10:55
0
  • 如果列数据项的大小一致,则使用 char

  • 如果列数据项的大小差异相当大,则使用 varchar

  • 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)

上面是SQL Server 的建议,还是按照建议来做,也不费什么事。避免 “大材小用”。

jone_e | 园豆:1410 (小虾三级) | 2013-09-06 11:01
0

理论上是可以的,但在实际的项目中就不一定要这样一刀切了,毕竟项目还是要结合实际的。因为在数据库中定义了长度,同时其实也就规定了业务中的输入长度,比如定义了公司名最长80个字符,则如果前端输入超过80个字符,尤其是某些人恶意输入了很长的字符串来进行捣乱的话,则这些额外的数据是不会被保存进数据库的,从而在遵循业务的情况下有效地抵御了恶意的输入。

dreampursuer | 园豆:204 (菜鸟二级) | 2013-09-06 13:15
0

可以,  有点像你早上吃早餐点了十碗面,为什么不可以,,就是浪费了点

t101lian | 园豆:32 (初学一级) | 2013-09-06 13:21
0

第一次听说varchar浪费空间的。

我一般都是定义长一点,安全性由应用程序来保证。因为项目需求是会变的,如果你定义了公司名最长80个字符,有一天老板对你主公司名最多要支持要255,本来改一下程序就可以的事,你还要去改数据库。如果数据库已经分发下去,你就哭去吧。

当然用nvarchar更好一些

五星 | 园豆:125 (初学一级) | 2013-09-08 19:54
0

理论上是可以的,

浪费空间不说 关键是没有那个必要。

0.617 | 园豆:410 (菜鸟二级) | 2013-09-13 17:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册