SQL Server:需要 TSQL 或安全步骤:更改表组的整体排序规则

Jon*_*ica 6 sql-server collation

寻找一个安全的 TSQL(首选)或安全的步骤(如果可能的话,最好是自动化的)来一次性更改数十个表的排序规则。

背景

我们有一个数据库,SQL Server 2005,有大约 100 个表。

其中 30-40 个有一个不适合我们正在运行的应用程序的排序规则集。(我们需要它们都是“SQL_Latin1_General_CP1_CS_AS”但是这组表是“SQL_Latin1_General_CP1_CI_AS”)

可能的解决方案

我们找到了这个脚本:http : //www.codeproject.com/Articles/12753/SQL-Server-2000-Collat​​ion-Changer

找到解决方案的问题

但是这个脚本似乎引入了数据丢失的可能性,并且它似乎既不检测也不警告也不衡量是否会发生数据丢失。

使用感觉有风险!

社区问题

有没有更先进的方法来解决这个问题?

最好是一个脚本:

  • 检测是否会丢失数据并至少给出警告。(即使是一个只扫描表的脚本,考虑从排序规则 A 到 B 的更改,并告诉我如果进行此更改会发生什么......)
  • 可以批量工作(例如,我告诉它我的目标排序规则是什么,它对数据库中的所有表和列执行所有工作并报告它所做的工作)

谢谢!

Jon*_*ica 0

答案是:使用 Alex Baker 的排序规则更改工具。它为您创建脚本,然后您运行该脚本。它删除所有索引、PK 和 FK,更改所有对象的排序规则,重新创建所有索引、PK 和 FK,基本上就是所需的魔法。

该工具现已发布在 github 上: https ://github.com/alexmbaker/sqlcollat​​ion/tree/john-hardin-feedback