Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 排序错误_Sql_Sql Server 2008 R2 - Fatal编程技术网

Sql 排序错误

Sql 排序错误,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,我正在使用Microsoft SQL Server Management Studio。我有两个数据库,一个是系统数据库,它有主数据库,另一个是我的数据库,名为CCTNS\u CAS\u DE\u DB。当我试图通过使用CCTNS\u CAS\u DE\u DB数据库的工具生成报告时 我得到以下错误: 无法解决等于操作中“Latin1_General_CI_AI”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突 我检查了SQL Server并检查了主数据库的属性,

我正在使用Microsoft SQL Server Management Studio。我有两个数据库,一个是系统数据库,它有主数据库,另一个是我的数据库,名为
CCTNS\u CAS\u DE\u DB
。当我试图通过使用
CCTNS\u CAS\u DE\u DB
数据库的工具生成报告时

我得到以下错误:

无法解决等于操作中“Latin1_General_CI_AI”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突

我检查了SQL Server并检查了主数据库的属性,它显示排序规则为
Latin1\u General\u CI\u AI
,但当我转到
CCTNS\u CAS\u DE\u DB
数据库的属性时,它显示排序规则为
SQL\u Latin1\u General\u CP1\u CI\u as

我在网上搜索了错误,但大多数解决方案都告诉我如何更改特定表的排序规则,但我没有遇到任何将我的数据库排序规则更改为
Latin1\u General\u CI\u AI

我遇到一个问题是:

ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI
当我在SQL Server中运行此查询时,它抛出了以下错误:-

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


我知道这个问题已经发布在这里了,但我想这是另一个背景。

这里是你问题的最大提示:

Msg 5030,第16级,状态2,第1行无法以独占方式锁定数据库以执行该操作

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


您可以这样做。

需要先将其设置为单用户

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 

我执行了以下查询(将数据库CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI;GO)并能够将我的数据库CCTNS_CAS_DE_DB的排序规则从SQL_Latin1_General_CP1_CI_更改为Latin1_General_CI_AI,但在生成报告时显示相同的错误,即无法解决两者之间的排序冲突“拉丁语通用词”和“SQL拉丁语通用词CP1通用词”“在等于操作中。感谢您没有假设我知道设置单用户操作的SQL!感谢您没有假设我知道SQL设置为多用户操作!如果在2016年,微软能够将这个简单的过程构建到SSM中,而不是像他们那样让它变得愚蠢,那将是一件多么美好的事情。这是一个完全重复的过程。请不要重复现有答案和/或将感谢信作为答案。相反,一旦你有足够的声誉,就投票选出对你帮助最大的答案。