首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >校对误差

校对误差
EN

Stack Overflow用户
提问于 2012-12-09 08:25:02
回答 2查看 52.1K关注 0票数 45

我正在使用。我有两个数据库,一个是系统数据库,一个是主数据库,另一个是我的数据库,名为CCTNS_CAS_DE_DB。当我试图通过使用CCTNS_CAS_DE_DB数据库的工具生成报告时。

我得到以下错误:

无法解决"Latin1_General_CI_AI“和"SQL_Latin1_General_CP1_CI_AS”在等效操作中的排序冲突。

我遍历了Server并检查了主数据库的属性,它将排序规则显示为Latin1_General_CI_AI,但当我转到CCTNS_CAS_DE_DB数据库的属性时,它将排序规则显示为SQL_Latin1_General_CP1_CI_AS

我在网上搜索了错误,但大多数解决方案都会告诉您如何更改特定表的排序规则,但我没有遇到任何将排序规则我的数据库更改为Latin1_General_CI_AI的查询。

我遇到一个问题,就是:-

代码语言:javascript
复制
ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI

当我在Server中运行这个查询时,它抛出了以下错误:

Msg 5030,16级,状态2,第1行 无法独占锁定数据库以执行操作。 Msg 5072,16级,状态1,第1行 ALTER数据库失败。数据库'CCTNS_CAS_DE_DB‘的默认排序规则不能设置为Latin1_General_CI_AI。

我知道这个问题已经张贴在这里,但我认为这是在不同的背景下提出的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-09 08:29:59

以下是你的问题的最大提示:

Msg 5030,16级,状态2,第1行数据库不能被独占锁定以执行操作。

您需要做的是在运行ALTER DATABASE语句之前将数据库设置为单用户模式,然后在它完成后将其设置为多用户模式。这将锁定数据库,并使其只对当前连接可用,这将允许您成功地运行ALTER DATABASE ... COLLATE语句。

你可以用使用或T命令来做这个。

票数 24
EN

Stack Overflow用户

发布于 2013-06-29 07:14:23

首先需要将其设置为SINGLE_USER。

代码语言:javascript
复制
ALTER DATABASE [database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 

GO 

ALTER DATABASE [database] COLLATE SQL_1xCompat_CP850_CI_AS; 

GO 

ALTER DATABASE [database] SET MULTI_USER; 

GO 
票数 121
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13785814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档