为啥说数据库表的结构不能随意修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥说数据库表的结构不能随意修改相关的知识,希望对你有一定的参考价值。

怕修改后导致数据丢失,比如你有个vchar类型的,你把它改成int,里面的数据什么字母ABCD啊它就转换不过去,不支持互相转换的数据就会全部清空....
另外如果你写程序调用了数据库,结构一改很可能程序会出错,比如
int a=1;
int b=select b from table1 where...
int c=a+b
如果你把b对应的数据库列改成char类型了它运行就会出错,提示字符不能相+
参考技术A 修改表结构首先怕丢失数据
其次修改表结构后你的存储过程,视图等等都要跟着变化
你的程序也要跟着变化,很麻烦
参考技术B 会出错的....

SQL server中某个表的字段值为啥不能修改?

这个表中的主键是升序排列,但是我要修改的字段值一列不是主键,好像没有Check约束,高手们是怎么回事啊?

同意楼上的
你看看,这个值是不是有外键约束
比如说,A表中ID号为主键,B表中的ID号为外键
这时候 A表中的ID号只有数据'1',那你B表的ID号就不能是'2'..
还有就是可能是被设置为标识列,会自动增长的那种
还有就是这个字段有设置UNIQUE约束,或者CHECK约束
你把他所有关系都删除了,再试试看
参考技术A 看看这个字段的约束 有可能是自动增长的吧

以上是关于为啥说数据库表的结构不能随意修改的主要内容,如果未能解决你的问题,请参考以下文章

SQL server中某个表的字段值为啥不能修改?

大话数据结构----栈

如何用SQL语句修改一个表的字段,让它不能为空

数据透视表求和项为啥在第一行

.为啥被定义为参照表的表无法删除?

SQL 导出表的问题?字段类型为啥会改变~