34,576
社区成员
发帖
与我相关
我的任务
分享
--整个服务器的没试过,修改 数据库中每个表的如下
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
更改服务器排序规则
更改 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 实例的默认排序规则。