赛捷软件论坛's Archiver

luoxiong 发表于 2009-4-8 00:56

更改数据库的排序规则后出错

<P>前段时间本机数据有些地方是乱码(显示为?),不想重装,</P><P>于是就用语句将数据库的排序规则更改了,改完为没有发现有什么问题,</P><P>但过了一个月左右的时间,系统就出现问题了,</P><P>报错如下:</P><P>&nbsp;<img border=0 src=attachments/bbsxp/2009-4/200947165951.jpg></P><P><img border=0 src=attachments/bbsxp/2009-4/20094717138.jpg></P><P>&nbsp;</P><P>&nbsp;</P><P>我采用的SQL语句如下:</P><P>1、查询数据库排序方法,可以获得更多的规则:&nbsp; <BR>&nbsp;SELECT *&nbsp; <BR>&nbsp;FROM ::fn_helpcollations()&nbsp; </P><P>&nbsp; <BR>2、要关闭所有连接<BR>方法:在查询分析器中用下面的方法,注意修改数据库名:&nbsp; <BR>&nbsp; <BR>&nbsp;/*&nbsp; <BR>&nbsp;关闭用户打开的进程处理&nbsp; <BR>&nbsp;*/&nbsp; <BR>&nbsp;use master&nbsp; <BR>&nbsp;go&nbsp; <BR>&nbsp; <BR>3.------<BR>&nbsp;use master&nbsp; <BR>&nbsp;go&nbsp; </P><P>&nbsp;if exists (select * from dbo.sysobjects where id = object_id(N&#39;[dbo].[p_killspid]&#39;) and OBJECTPROPERTY(id, N&#39;IsProcedure&#39;) = 1)&nbsp; <BR>&nbsp;drop procedure [dbo].[p_killspid]&nbsp; <BR>&nbsp;GO&nbsp; <BR>&nbsp; <BR>&nbsp;create proc p_killspid&nbsp; <BR>&nbsp;@dbname varchar(200) --要关闭进程的数据库名&nbsp; <BR>&nbsp;as&nbsp; <BR>&nbsp;declare @sql nvarchar(500)&nbsp; <BR>&nbsp;declare @spid nvarchar(20)&nbsp; <BR>&nbsp; <BR>&nbsp;declare #tb cursor for&nbsp; <BR>&nbsp;select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)&nbsp; <BR>&nbsp;open #tb&nbsp; <BR>&nbsp;fetch next from #tb into @spid&nbsp; <BR>&nbsp;while @@fetch_status=0&nbsp; <BR>&nbsp;begin&nbsp; <BR>&nbsp;exec(&#39;kill <A target=_blank href="mailto:&#39;+@spid" target=_blank>&#39;+@spid</A>)&nbsp; <BR>&nbsp;fetch next from #tb into @spid&nbsp; <BR>&nbsp;end&nbsp; <BR>&nbsp;close #tb&nbsp; <BR>&nbsp;deallocate #tb&nbsp; <BR>&nbsp;go&nbsp; <BR>&nbsp; <BR>&nbsp;--关闭用户连接&nbsp; <BR>&nbsp;exec p_killspid &#39;数据库名&#39;&nbsp; <BR>&nbsp;go&nbsp; <BR>&nbsp; <BR>4、修改数据库排序规则&nbsp; <BR>Alter database 数据库名 collate Chinese_PRC_BIN </P><P>&nbsp;</P><P>现在该如何处理?在不重装基础上,能不能挽救?</P><P>&nbsp;</P><P>&nbsp;</P><p>[此帖子已被 luoxiong 在 2009-4-7 17:02:40 编辑过]

tansj 发表于 2009-4-8 06:51

Re:更改数据库的排序规则后出错

<P>请参考下面这篇帖子我在7楼的回复。</P><P><A target=_blank href="http://www.sagesoft.cn/bbs/ShowPost.asp?ThreadID=1319" target=_blank>http://www.sagesoft.cn/bbs/ShowPost.asp?ThreadID=1319</A></P><P>若你的DB为sqlserver2000,建议迁移到sqlserver2005/oracle上来。</P><p>[此帖子已被 tansj 在 2009-4-7 22:51:59 编辑过]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.