今天在开发过程中遇到了一个关于Sqlserver2005的排序规则的问题,默认的排序规则不区分全角半角,对此需要修改数据库的排序规则,但是,因为数据库中已经存在大量的数据,不能通过alter的方式修改,
在网上找了些资料大概是这样描述的
************************************************************************************
更改 SQL Server 2005 实例 master 的默认排序规则的操作比较复杂,包括以下步骤:
一、备份数据库现状:
1、确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本;
2、使用工具(例如大容量复制)导出所有数据;
3、删除所有用户数据库。
二、重新生成 master 数据库:
重新生成指定新的排序规则的 master 数据库 详细步骤如下:
1、将SQL Server 2005 安装光盘放入光驱;
2、在操作系统上选择“开始”--“运行”(输入CMD)--“回车”;
3、于弹出的命令窗口通过“cd..”指令,回到磁盘的根目录(如c:/);
4、接着键入你光盘所在盘符,如“f:”,回车;
5、接着键入(“setup.exe /qn INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=sa SQLCOLLATION=Chinese_PRC_CI_AS”)命令重新构建master 数据库;
(备注:如果是默认实例,则INSTANCENAME的值为“MSSQLSERVER”,有实例则录入实例;SAPWD的值为数据库密码;SQLCOLLATION为你所定义的排序规则,中文简体则为“Chinese_PRC_CI_AS”)
6、接着等几分钟候电脑自动运行,期间是没有提示运行完成窗口的,待光驱灯不闪烁及硬盘不连续读盘的时候表示安装完成;
7、接着重启电脑,重新建数据库,将之前导出的数据导入就OK了~!
**********************************************************************************
看着还是有些复杂,
后来想到了一个取巧的办法,但是也算是个笨办法吧。
1,新建数据库名字任意取,在设置排序规则时设置为需要的能区分全角半角的排序规则。
2,将原数据库的各个表、视图等,重新创建到新的数据库中来,(比较笨了点,呵呵)
3,使用Sqlserver的数据库导数据工具,将原数据库的数据到入到新建数据库中,
4,将原数据库改名(任意),前提需要将应用程序等连接到原数据的都关掉。
5,将新建数据库改名为原数据库名。
问题就解决了。