项目基本设计时的失误,现在为了在非纯英文地区使用公司的系统,4月1日前,必须将数据库中全部的varchar转换到nvarchar,当然要保证原有数据不能丢失。
大概的思路:
一、准备工作,备份所有的资源,建造测试环境,然后:
1、检查SQL里所有View、SP、Function、Trigger,确保都是可靠的;
2、检查SQL里所有varchar字段的情况;
3、检查WebService里面对所有varchar字段地使用情况;
4、检查WinFrom客户端里面对所有varchar字段地使用情况;
二、在测试数据库上进行更改
1、生成所有View、SP、Function、Trigger的SQL脚本;
2、修改所有长度小于4000的varchar字段为nvarchar;
3、修改所有长度大于4000的varchar字段为ntext;
4、替换View、SP、Function、Trigger的SQL脚本里所有的varchar为nvarchar,注意先检查会不会有需要转换到ntext的字段出现,然后重新生成View、SP、Function、Trigger;
三、更改测试WebService
1、在每个SqlDataAdapter上重新进行一遍“配置数据适配器”向导,应该基本上修改了所有机器生成的代码中的varchar;
2、在全部的代码中查找"Varchar",(全字匹配,不区分大小写),找到的将是所有手写的varchar,替换为nvarchar;
3、编译。
四、修改client WinForm
1、重新引用所有的“Web 引用”
2、在全部的代码中查找"Varchar",(全字匹配,不区分大小写),找到的将是所有手写的varchar,替换为nvarchar;
五、各模块负责人对自己模块的调试和详细测试
定会有不少问题出现,但愿都能在1天之内解决掉。
六、告知所有用户将停止live的系统1-2天
七、升级live系统
1、停止IIS、SQL、自己的服务
2、备份
3、在live库上进行升级
4、升级WS
5、更新自动升级库
6、测试
不成功就成仁
八、重新启动live系统,告知用户"好了!"。