作者trueQoo (幸运之神)
看板Database
标题Re: [SQL ] ansi_padding
时间Fri Feb 17 14:42:50 2012
※ 引述《trueQoo (幸运之神)》之铭言:
: 推 TeemingVoid:可以这样说,不过,我尝试说明的是这项何以要设成ON。 02/16 16:06
: → TeemingVoid:不只是因为SQL-92规定如此,而是规定之所以如此规定的 02/16 16:06
: → TeemingVoid:理由。就像为什麽不能偷东西? 不只是因为法律规定而已 02/16 16:07
应该这麽说吧,早期的 MS SQL 的字串,并没有 char 这种东西
你设定字串就等同於 varchar (不补空白)
但确实这是 ansi sql的规定,要有区分不补空白,与补空白的字串
所以 MS SQL 才会多一个设定
而你把 ansi padding 关了, char 就和 varchar 一样了,但这反而
不建议你这麽用,因为如果你不补空白,请你直接用 varchar 就好了
不该使用 char,因为 MS 已经预设把 char 设定成「会补空白」
所以,原文说为何 sql 要强制设定 ansi padding 为 ON
那原po觉得咧? 预设设定为 off 吗? 那麽 char 与 varchar 的分别是?
所以结论是,这个选项是「向前相容」,除非你是 SQL 6.0这样用上来
以前 char 是等於 varchar,不然你没理由用 padding off
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.67.170