于 于小澜 Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-02 #1 非空字段可以为空?在SQL SERVER7.0中插入时,非空字段必填,非空字段正常。在对已存在的记录修改时,可以把非空字段的内容删除并保存,数据库也不报错,这是为什么?(68分)<br />
T terry_lzs Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-02 #2 其实字段不允许为空是指不能为null,但是一些字段,例如varchar,你将里面的内容 删除其实字段并不是为null,而是为长度为零的字符串,这和null是有区别的。
G ggqq Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-02 #5 有两个办法 1、用触发器,检测rtrim后的字段长度 2、前台检测,每次保存前检测一下
H hnzgf Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-02 #6 Null和‘’是有区别的!你把Varchar字段的内容删掉其实是把它置为'',并不是null
L lovefox Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-04 #7 如果深入编译器理解的话(但愿我下面的描述可以让你理解) 如果把每个字符的占位看成一个空格的话,编译程序的过程这样理解 null 和 '', null理解为□,编译器不在字符所占位置填任何东西, 但是''理解为[/0],这里/0是编译器内部自动添加给''这样的字符串的, 表示一个长度为0的字符。当然了/0在给我们看的结果中是看不见的, 仅供编译器翻译该字符串 不知道我说明白了没有
如果深入编译器理解的话(但愿我下面的描述可以让你理解) 如果把每个字符的占位看成一个空格的话,编译程序的过程这样理解 null 和 '', null理解为□,编译器不在字符所占位置填任何东西, 但是''理解为[/0],这里/0是编译器内部自动添加给''这样的字符串的, 表示一个长度为0的字符。当然了/0在给我们看的结果中是看不见的, 仅供编译器翻译该字符串 不知道我说明白了没有