自己写的程序已经交给用户使用,后来又修改了数据库结构,包括添加删除字段、创建删除表,但是使用先前版本的用户已经在数据库中导入了很多数据,要给用户使用程序的新版本伴随着要更新数据库,请问只能将原来的数据库覆盖吗,这样的话用户原来导入的很多数据将丢失,重新导入将很费时间,本人新手,不清楚有什么解决方案和成熟的方法,能解决这种后期维护时修改数据库结构而产生的问题,难道数据库结构设计完成时候就不能修改吗
解决方案 »
- 求指教
- C# 读取 excel中的 数字 的 时候,提示错误 “ 数字必须介于 1 和 32767 之间“
- RichTextBox根据内容调整高度
- 高手救救我吧,关于微软AJAX扩展Sys.Debug.isDebug问题
- 关于comboBox
- 请问DevExpress.XtraTreeList.TreeList的内容如何导出到EXCEL文件中?
- Timer控件,与程序出现延迟,导致前后显示不一致,求教~
- 求助:C# HTTP身份验证返回401 unauthorized
- C# 建立Datatable类 后添加表格内容, 现在要表到access数据库中,如下:
- 根目录下可以,虚拟目录下不行求救
- 大批量数据的文件格式处理
- 求数据库连接池代码
“新手”最喜欢说的就是“做不了、不能改”,找各种理由。所以产品开发其实首先是看经验。只有那些“骗一单算一单”小软件作坊才会每一次销售都作为一个新的项目去从头定义软件产品设计(然后这种公司在国内很多很多)。其实这个就是责任心问题。你既然能够把自己开发环境的数据库更新,就能使用ddl语句编写一个升级程序把客户那里的数据库更新。就是你的耐心是否足以独立设计一个程序的问题。(如果一个人他只想简单敷衍用户,那么他宁可花大把时间纠结这个问题,也懒得写一个数据库升级程序)
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
GOif 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
所以人家叫你去了解sql语句嘛
比如:修改列的格式可以:1.先把原先的列重命名为临时列名,2.新建1个原先列名,格式为新的格式 3.从原先列复制到新列 4.删除旧的列其他新增 删除 那都是很基本的