数据库表的结构随意修改的可能后果

1、数据丢失。比如你有个vchar类型的,你把它改成int,不支持互相转换的数据就会全部清空;

2、程序调用了数据库,如果不是预期的类型,结构一改很可能程序会出错;


不管字段是否使用到,数据库已经创建一般就不修改(特指删除),不然对即将更新数据库的应用来说,将损失很多用户。

可以写一个数据库升级脚本,如(摘抄网友):

if not exists(select * from syscolumns where id=object_id('gresmanager_goods') and name='goods_allow_discount') 
ALTER   TABLE gresmanager_goods  ADD goods_allow_discount int NULL DEFAULT (0) 
GO
UPDATE gresmanager_goods  SET goods_allow_discount=0  
GO
if not exists(select * from syscolumns where id=object_id('gresmanager_table_consume_detail') and name='detail_discount') 
ALTER   TABLE gresmanager_table_consume_detail ADD detail_discount decimal(18,4) NOT NULL DEFAULT (1)
GO
UPDATE gresmanager_table_consume_detail SET detail_discount=1
GO

if not exists(select * from syscolumns where id=object_id('gresmanager_consume_bill_tmp') and name='bill_deposit') 
ALTER   TABLE gresmanager_consume_bill_tmp ADD bill_deposit decimal(18,4) NULL  DEFAULT (0)
GO
UPDATE gresmanager_consume_bill_tmp SET bill_deposit=0
GO


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值