在SQL Server 2000数据库中更改 master排序规则


  本文标签:SQL Server 2000

  此文章主要介绍的是在 SQL Server 2000 中正确转换数据库的实际排序规则,以及对实现 SQL Server 2000 中正确转换数据库的实际排序规则的步骤与在SQL Server 2000数据库中更改 master 数据库的排序规则等相关内容的介绍  。

  要在 SQL Server 2000 中转换数据库的排序规则,请按照下列步骤操作:

  1. 备份源数据库  。

  2. 注意所有列是否使用 COLLATE 子句  。

  3. 使用适当的排序规则在目标服务器上创建新的数据库  。

  4. 如果没有列使用 COLLATE 子句,请使用 DTS 将数据传输到目标服务器  。为此,请启用“使用排序规则”选项以进行代码页转换,并将数据转换为目标数据库上的新排序规则  。如果所有列均使用 COLLATE 子句,请按照下列步骤操作:

  a. 为所有对象(不包括索引、触发器、主键、外键、默认设置和约束)生成脚本  。此外,确保启用了“仅为与 7.0 版兼容的功能编写脚本”选项,以便从脚本删除 COLLATE 子句  。

  

  注意:使用“仅为与 7.0 版兼容的功能编写脚本”选项时,可以更改排序规则  。但是,生成脚本时将不考虑任何新的 SQL Server 2000 选项(包括用户定义的函数、扩展属性、INSTEAD OF 触发器和视图上的索引)  。

  

  b. 在目标数据库上运行步骤 a 中创建的脚本,以便使用目标数据库的排序规则创建对象  。

  c. 使用 DTS 仅传输源数据库中的数据  。

  d. 成功传输数据后,将会为源数据库中的所有约束、外键、主键和索引生成脚本  。

  e. 在目标数据库上运行步骤 d 中创建的脚本  。

  

  更改 master 数据库的排序规则

  

  如果要更改 master 数据库的排序规则,则必须重建 master 数据库  。在重建 master 数据库时,实质上是创建了新的 master 数据库  。因此,重建 master 数据库之前,应考虑下列事项:

  确保创建了当前 master 数据库的有效备份  。在重建 master 数据库时,还会重建 msdb 数据库和 model 数据库  。因此,在重建 master 数据库之前必须备份 msdb 数据库和 model 数据库  。msdb 数据库是用于存储 SQL Server 作业、警报、运算符和 DTS 包的系统数据库  。model 数据库是创建新数据库时所使用的模板数据库  。

  因为重建 master 数据库会创建一个新的 master 数据库,所以必须在重建 master 数据库之后重新输入现有登录信息  。因此,还必须在重建 master 数据库之前导出登录信息,然后在重建 master 数据库后,导入登录信息  。

  因为在重建 master 数据库时会重建 msdb 数据库,所以在重建 master 数据库之前,必须为所有作业、警报和运算符生成脚本  。此外,还必须确保移动了所有 DTS 包  。

  因为在重建 master 数据库时会重建 model 数据库,所以在重建 master 数据库之前,必须记下或导出以前对 model 数据库所做的全部更改或为其生成脚本  。重建 model 数据库之后,请重新应用已记录的全部更改  。

  在 SQL Server 2000 中更改 master 数据库的排序规则

  更改 master 数据库的排序规则之前,请按照下列步骤操作:

  1. 重建 master 数据库之后,不会自动恢复在重建此数据库之前创建的所有数据库  。因此,所有数据库必须从备份进行还原,或者如果文件仍在磁盘上,则可以使用 sp_attach_db 系统存储过程重新附加数据库  。

  请确保在重建 master 数据库之前将所有必要的信息重新附加到现有数据库  。有关 sp_attach_db 系统存储过程的更多信息,请访问下面的 MSDN 网站:http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx)

  2. 在重建 master 数据库时,仅更改 master 数据库、model 数据库和 msdb 数据库的排序规则  。不会更改用户数据库的排序规则  。要更改现有用户数据库的排序规则或者使用适当的排序规则创建新的数据库,请使用 ALTER DATABASE 命令,然后使用 DTS 或 bcp 实用工具将数据传输到新的数据库  。

  

  注意:如果在 SQL Server 2000 中使用 ALTER DATABASE 命令来更改数据库的排序规则,则表中列的排序规则将不会自动更改  。要更改列的排序规则,请使用 ALTER TABLE 命令和 ALTER COLUMN 命令  。

  如果使用 DTS,则可以在传输数据或使用“使用排序规则”选项之前,使用适当的排序规则创建表和列  。如果使用的 DTS 和表已经包含适当的排序规则,请确保在运行软件包之前禁用了“首先删除现有对象”选项  。

  

  

  

  在 SQL Server 7.0 中更改更改 master 数据库的排序规则之前,请按照下列步骤操作:

  1. SQL Server 7.0 不支持数据库使用除默认排序规则以外的排序规则  。因此,在重建 master 数据库之前,请从用户数据库中导出所有数据  。

  2. 为数据库中的所有对象生成脚本  。

  3. 使用适当的排序规则重新创建 master 数据库  。

  4. 创建新的数据库  。使用新的默认排序规则自动创建新的数据库  。

  5. 运行以前保存的脚本以重新创建对象,然后导入以前导出的数据  。