C# 无法解决“之间的排序规则冲突”;西里尔语的“将军”词;及;SQL拉丁语通用CP1 CI AS;在等于运算中

C# 无法解决“之间的排序规则冲突”;西里尔语的“将军”词;及;SQL拉丁语通用CP1 CI AS;在等于运算中,c#,sql-server,asp.net-mvc-3,asp.net-core,C#,Sql Server,Asp.net Mvc 3,Asp.net Core,MS SQL server 2017 asp.net核心2 我从c#调用存储过程: 没有错误,只返回值 如何解决排序规则问题?很可能您的系统数据库具有不同的排序规则 您可以通过在SQL Management studio中执行以下查询来检查: SELECT name, collation_name FROM sys.databases 此外,在非主数据库上,您可以使用右键单击->属性->常规->维护,您将看到排序规则是最后一个选项 可以使用此查询更改非主控的: USE master;

MS SQL server 2017

asp.net核心2

我从c#调用存储过程:

没有错误,只返回值


如何解决排序规则问题?

很可能您的系统数据库具有不同的排序规则

您可以通过在SQL Management studio中执行以下查询来检查:

SELECT name, collation_name  
FROM sys.databases  
此外,在非主数据库上,您可以使用右键单击->属性->常规->维护,您将看到排序规则是最后一个选项

可以使用此查询更改非主控的:

USE master;  
GO  
ALTER DATABASE <<YOUR_DATABASE_OTHER_THAN_MASTER>>
COLLATE Latin1_General_CI_AS ;  
GO 
或者任何您想要设置的排序规则。如果有多个实例,请同时添加以下参数:

-s"<<YOUR_SQL_INSTANCE>>" e.g. -> sqlservr.exe -m -s"SQLEXP2014" -q"Latin1_General_CI_AS" 
-s“例如->sqlservr.exe-m-s“SQLEXP2014”-q“拉丁语1\u通用\u CI\u AS”
希望这能帮助您解决问题:)

来源:


什么是db?EF或EF核心还是?数据库的排序规则是什么?不,我们不使用EF。只需调用SQLServerDB的存储过程。好的,但是
db
是什么类型的对象呢?你能展示更多的代码吗?只是为了给像我这样不了解这里发生的事情细节的人补充一下:--1。即使您的查询不涉及master数据库,您也很可能必须更改“master”。一旦您更改了它,所有其他数据库也将更改。--2.SQL服务器可以安装在另一个目录中。对我来说是:C:\ProgramFiles\MicrosoftSQLServer\MSSQLS15.MSSQLSERVER\MSSQL\Binn---3。从命令提示符下运行sqlservr.exe并等待它更新设置后,可以在命令提示符下停止它,然后正常重新启动服务
USE master;  
GO  
ALTER DATABASE <<YOUR_DATABASE_OTHER_THAN_MASTER>>
COLLATE Latin1_General_CI_AS ;  
GO 
sqlservr.exe -m -q"Latin1_General_CI_AS"
-s"<<YOUR_SQL_INSTANCE>>" e.g. -> sqlservr.exe -m -s"SQLEXP2014" -q"Latin1_General_CI_AS"