Board logo

标题: 更改数据库的排序规则后出错 [打印本页]

作者: luoxiong    时间: 2009-4-8 00:56     标题: 更改数据库的排序规则后出错

前段时间本机数据有些地方是乱码(显示为?),不想重装,

于是就用语句将数据库的排序规则更改了,改完为没有发现有什么问题,

但过了一个月左右的时间,系统就出现问题了,

报错如下:

 

 

 

我采用的SQL语句如下:

1、查询数据库排序方法,可以获得更多的规则: 
 SELECT * 
 FROM ::fn_helpcollations() 

 
2、要关闭所有连接
方法:在查询分析器中用下面的方法,注意修改数据库名: 
 
 /* 
 关闭用户打开的进程处理 
 */ 
 use master 
 go 
 
3.------
 use master 
 go 

 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
 drop procedure [dbo].[p_killspid] 
 GO 
 
 create proc p_killspid 
 @dbname varchar(200) --要关闭进程的数据库名 
 as 
 declare @sql nvarchar(500) 
 declare @spid nvarchar(20) 
 
 declare #tb cursor for 
 select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname) 
 open #tb 
 fetch next from #tb into @spid 
 while @@fetch_status=0 
 begin 
 exec('kill '+@spid
 fetch next from #tb into @spid 
 end 
 close #tb 
 deallocate #tb 
 go 
 
 --关闭用户连接 
 exec p_killspid '数据库名' 
 go 
 
4、修改数据库排序规则 
Alter database 数据库名 collate Chinese_PRC_BIN

 

现在该如何处理?在不重装基础上,能不能挽救?

 

 

[此帖子已被 luoxiong 在 2009-4-7 17:02:40 编辑过]


作者: tansj    时间: 2009-4-8 06:51     标题: Re:更改数据库的排序规则后出错

请参考下面这篇帖子我在7楼的回复。

http://www.sagesoft.cn/bbs/ShowPost.asp?ThreadID=1319

若你的DB为sqlserver2000,建议迁移到sqlserver2005/oracle上来。

[此帖子已被 tansj 在 2009-4-7 22:51:59 编辑过]




欢迎光临 赛捷软件论坛 (http://sagesoft.cn/bbs/) Powered by Discuz! 7.2