如何修改服务器排序规则,整个服务器的,不是单个数据库的,谢谢!
解决方案 »
- 独立主机中MSSQL2005如何能远程链接?
- 求一个SQL语句
- 谁给我点积分啊,我下东西老是提示积分不够?谢谢了!!!
- 在winxp_sp2中不能装sql server 2000 dev???
- 关于游标的问题》》》》》
- SQL 统计时间
- sql server 2008 数据库镜像问题,高手请指教
- 各位,我的SQL AGENT服务忽然起不来了(无错误信息),SQL SERVER服务正常。请问,可能是什么原因造成的。
- sql2000的并发问题(sqlserver高手请帮忙)
- 存储过程:在定义变量的后面INT = NULL是何用意?在线等待!请各位大侠赐教!!谢谢!!
- 用SQL语句如何将一张表的数据导入到另一张表
- Mysql 和 ORacle 创建表的区别
更改 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 实例的默认排序规则。
替小F 多说一句,先备份好数据库,否则MASTER损坏,你也只有哭的份了
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