sys.all_columns引发错误:无法解决等于操作中的“SQL_Latin1_General_CP1_CI_AS”和“Arabic_CI_AS”之间的排序规则冲突

sys.all_columns raises error:Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Arabic_CI_AS" in the equal to operation

提问人:Vajihe Jami 提问时间:10/23/2023 最后编辑:Dale KVajihe Jami 更新时间:10/24/2023 访问量:43

问:

我试图通过以下命令将SQL Server的默认排序规则更改为默认排序规则:“SQL_Latin1_General_CP1_CI_AS”:

sqlservr -m -T4022 -T3659 -s”MSSQLSERVER” -q”SQL_Latin1_General_CP1_CI_AS”

完成此操作后,查询

SELECT * FROM sys.all_columns

它不起作用并引发错误:

无法解决等于运算中的“SQL_Latin1_General_CP1_CI_AS”和“Arabic_CI_AS”之间的排序规则冲突。

我发现导致错误的列是 . 此外,创建新数据库也面临一个问题。我无法打开数据库名称下方的“Tables”文件夹,那是因为它使用视图打开该文件夹。collation_namesys.all_columns

如何解决此问题?

我也尝试了这个查询:

SELECT COLLATION_NAME COLLATE SQL_Latin1_General_CP1_CI_AS
FROM sys.all_columns

但它没有用。

我应该说系统数据库具有默认排序规则: 了解这一事实可能会有所帮助:在我更改默认排序规则之前,有一些数据库具有不同的排序规则,并且没有错误。SQL_Latin1_General_CP1_CI_AS

我发现的最后一件事是这个视图导致错误: .sys.system_components_surface_area_configuration

sql-server 排序规则 sql-server-collation

评论

3赞 M.Ali 10/23/2023
为什么不在数据库级别设置排序规则,而不是尝试更改服务器排序规则呢?服务器排序规则是在安装时设置的。安装后更改它只会给您带来问题。
1赞 Thom A 10/23/2023
如果您确实需要更改服务器的排序规则,我真的建议您重新安装 SQL Server。
0赞 nbk 10/23/2023
使用新的排序规则添加新实例。然后它变得棘手,当您与 Pathon 连接到旧排序规则时,与新排序规则建立新连接并传输数据,这将保留数据
0赞 Vajihe Jami 10/23/2023
我不知道它可能会导致这样的问题。我想我必须重新安装它:(
0赞 Charlieface 10/23/2023
如果在这些数据库上运行,会发生什么情况?您是否按照此处 learn.microsoft.com/en-us/sql/relational-databases/collations/ 的所有说明设置服务器排序规则,包括删除所有数据库并重建?DBCC CHECKDBmaster

答: 暂无答案