整理错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整理错误相关的知识,希望对你有一定的参考价值。
我正在使用Microsoft SQL Server Management Studio。我有两个数据库,一个是系统数据库,它有主数据库,另一个是我的数据库,叫做CCTNS_CAS_DE_DB
。当我尝试通过使用CCTNS_CAS_DE_DB
数据库的工具生成报告时。
我收到以下错误:
在等于操作中无法解决“Latin1_General_CI_AI”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突
我浏览了SQL Server并检查了master数据库的属性,它将校对显示为Latin1_General_CI_AI
但是当我转到CCTNS_CAS_DE_DB
数据库的属性时,它将校对显示为SQL_Latin1_General_CP1_CI_AS
。
我在线搜索错误,但大多数解决方案告诉如何更改特定表的排序规则,但我没有遇到任何查询,这将更改我的数据库排序到Latin1_General_CI_AI
。
我遇到一个问题是: -
ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI
当我在SQL Server中运行此查询时,它抛出以下错误: -
Msg 5030,Level 16,State 2,Line 1 无法独占锁定数据库以执行操作。 消息5072,级别16,状态1,第1行 ALTER DATABASE失败了。数据库'CCTNS_CAS_DE_DB'的默认排序规则不能设置为Latin1_General_CI_AI。
我知道这个问题已经发布在这里,但我认为这是在不同的背景下。
这是您问题的最大提示:
消息5030,级别16,状态2,行1无法独占锁定数据库以执行操作。
您需要做的是在运行ALTER DATABASE
语句之前将数据库设置为单用户模式,然后在完成后将其设置回多用户模式。这将锁定数据库并使其仅可用于当前连接,这将允许您成功运行ALTER DATABASE ... COLLATE
语句。
你可以use SQL Server Management Studio or T-SQL commands这样做。
首先需要将其设置为SINGLE_USER。
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
完美的工作谢谢你
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
以上是关于整理错误的主要内容,如果未能解决你的问题,请参考以下文章