修改服务器排序规则

好帅的一条鱼 2011-05-16 03:28:31
如何修改服务器排序规则,整个服务器的,不是单个数据库的,谢谢!
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
打一壶酱油 2011-05-17
  • 打赏
  • 举报
回复
--整个服务器的没试过,修改 数据库中每个表的如下


CREATE PROCEDURE [LM_ChangeCollation] @new_collation varchar(100)=NULL AS DECLARE @table varchar(50), @column varchar(60), @type varchar(20), @legth varchar(4), @nullable varchar(8), @sql varchar(8000), @msg varchar(8000), @servercollation varchar(120) select @servercollation = convert(sysname, serverproperty('collation')) DECLARE C1 CURSOR FOR select 'Table' = b.name, 'Column' = a.name, 'Type' = type_name(a.xusertype), 'Length' = a.length, 'Nullable' = case when a.isnullable = 0 then 'NOT NULL' else ' ' end from syscolumns a, sysobjects b where a.number = 0 and a.id =b.id and b.xtype='U' and b.name not like 'dt%' and type_name(a.xusertype) in ('char', 'varchar', 'text', 'nchar', 'nvarchar', 'ntext') order by b.name,a.colid OPEN C1 FETCH NEXT FROM C1 INTO @table,@column,@type,@legth,@nullable WHILE @@FETCH_STATUS=0 BEGIN IF @new_collation is null set @new_collation=@servercollation set @sql='ALTER TABLE ' + @table + ' ALTER COLUMN ' + @column + ' ' set @sql=@sql+ @type+'('+@legth+')'+' COLLATE '+@new_collation+' '+@nullable EXEC (@sql) FETCH NEXT FROM C1 INTO @table,@column,@type,@legth,@nullable END CLOSE C1 DEALLOCATE C1 GO
Austindatabases 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
SQL code
更改服务器排序规则
更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤:

确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库……
[/Quote]

替小F 多说一句,先备份好数据库,否则MASTER损坏,你也只有哭的份了
--小F-- 2011-05-16
  • 打赏
  • 举报
回复
更改服务器排序规则 
更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤:

确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如:
复制代码
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有关重新生成 master 数据库的详细信息,请参阅如何重新生成 SQL Server 2005 的 Master 数据库。
创建所有数据库及这些数据库中的所有对象。
导入所有数据。
注意:
可以为创建的每个新数据库指定默认排序规则,而不更改 SQL Server 2005 实例的默认排序规则。
Austindatabases 2011-05-16
  • 打赏
  • 举报
回复
可以修改,我曾经修改过,2005 collation, 曾经有一份IBM给的专业修改的脚本,

但我不建议你那样做,IBM给的建议是,保存所有的数据库,修改大量的注册表键值,而且

很有可能(是很有可能)将SQL SERVER MASTER数据库损坏,导致SQL SERVER 无法启动。

最后我们得出的解决方案是,保存数据库,以及其他的用户名以及权限(这个有专门的软件可以去做)

,后卸载数据库,在安装中选择正确的COLLATION,这样才能改掉整个服务器的COLLATION

否则别无他法。
好帅的一条鱼 2011-05-16
  • 打赏
  • 举报
回复
帮帮忙啊

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧