SQL命令not null使用错误与修改数据类型

在做一个数据库时,通过命令进行表的生成时,对其他列加了 NOT NULL,唯独对规范标识identity(1,1)的ID列没有加NOT NULL。

自以为搞好了,却在数据输入时发生了错误。最后在网上查找问题原因,原来是NOT NULL没有加,导致这一问题。

任何列都是默认了可以 NULL的,而我又identity(1,1),必须加上 NOT NULL.。最后还是出了问题

通过看书和尝试发现,除ID列和主键所在列之外其他列都默认NULL之后,问题就消失了。NOT NULL 在输入上容易出问题,除非必须尽量不要NOT NULL。


写了上面这点东西之后,现在又遇到了NOT NULL的毛病:我对数据库中的表建立关系图,大家都知道一般每一张表都有一个主键列,而这个主键列通常会NOT NULL,问题出来了,当其他表会用到这张表中的主键列(此处为了叙述的简便,把这张表的主键列表示为A表的A列,其他表统一为B表)时,并不一定会在B表中把A列设为NOT NULL。这样建立关系图是,把这两个表中的A列建立关系开始不会出现问题,当保存时问题就说这个列出现错误,导致无法建立关系,唯一的办法就是改变其中一张表的A列的 NOT NULL属性。

但是,如果你为了主键列,把B表的A列改为NOT NULL属性,关系图倒是可以建立了。录入数据却成了大麻烦,A和B都是新表没有数据,你在B中存入数据,因为会因为A表中的A列是NULL而无法保存,就进入了死态,都在等对方的的A列中的数据变为NOT NULL。

所以NOT NULL 千万小心,特别是在使用关系图时。


修改列的数据类型

alter TABLE 表名 ALTER COLUMN 列名 VARCHAR(40) NULL

这里很多会出现问题,所以如果你有主键或者外键依附的话,先要删除,这样才能成功,否则会一直失败下去


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值