SQL命令not null使用错误与修改数据类型
2014-04-22 21:06
225 查看
在做一个数据库时,通过命令进行表的生成时,对其他列加了 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
这里很多会出现问题,所以如果你有主键或者外键依附的话,先要删除,这样才能成功,否则会一直失败下去
自以为搞好了,却在数据输入时发生了错误。最后在网上查找问题原因,原来是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
这里很多会出现问题,所以如果你有主键或者外键依附的话,先要删除,这样才能成功,否则会一直失败下去
相关文章推荐
- mysql命令行命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。。
- mysql命令行命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。。
- 常用sql命令@oracle数据类型概括@权限、角色、用户的创建于使用@伪列及其注意事项
- Oracle:SQL语句--对表的操作——修改列的数据类型( 即 修改字段的数据类型)
- SQL存储过程-新增和修改,参数Xml数据类型
- SQL获取表名、列名、数据类型、描述、表最后修改时间
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- SQL命令修改数据
- 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
- 转换SQL命令中的数据类型出现的错误
- 用sql命令修改数据表
- 批量生成修改数据库表字段类型SQL脚本
- sql增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- sql 语句修改数据字段类型
- SQL修改指定数据库的表数据类型【如将表中所有varchar类型修改为nvarchar】
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型