gpt4 book ai didi

sql - 从只有一种格式的数据库中的查询中获取 "Cannot resolve the collation conflict"错误

转载 作者:行者123 更新时间:2023-12-04 23:43:11 25 4
gpt4 key购买 nike

我收到以下错误:

Cannot resolve the collation conflict between "Latin1_General_CI_AI" and "Albanian_100_BIN" in the equal to operation.

来自只有一种格式的数据库中的查询!那里绝对没有 Albanian_100_BIN 排序规则。可以通过以下方式验证:

select object_name(object_id), name, collation_name
from sys.columns
where collation_name like '%_%'

查询是:

SELECT ID_ARTICLE_ECOLE FROM ARTICLE_ECOLE where UNIT_ADM  not in (select UnitAdm from  UniteAdministrative);

not in 有问题吗?


编辑:

它最终适用于:

SELECT * FROM ARTICLE_ECOLE where UNIT_ADM not in (select UnitAdm COLLATE Latin1_General_CI_AI  from  UniteAdministrative) ;

但是,查看表的属性,那里没有 Albanian_100_BIN,也许 in() 函数返回这种格式?那会很奇怪,请有人告诉我事实并非如此!


编辑:

update [sys].[all_columns]
set [collation_name] = 'Latin1_General_CI_AS_KS_WS'
where name = 'UNITE_ADM' and collation_name = 'Albanian_100_BIN';

不允许

最佳答案

通过我们所有的评论,我们越来越接近...

请试试这个:

SELECT o.name AS ParentName,c.name AS ColumnName,c.collation_name 
FROM sys.all_columns AS c
INNER JOIN sys.objects AS o ON c.object_id = o.object_id
WHERE collation_name = 'Albanian_100_BIN'
ORDER BY o.name,c.name

您不能更新 sys.all_columns。这是一个 View 。您必须找出哪个对象绑定(bind)到错误的排序规则并在那里进行更改。

正如我告诉您的:排序规则绑定(bind)到字符串列(以定义它们的排序顺序)、索引、 View 的列、约束...

通过上面的查询,您应该找到对象的名称及其父对象的名称,它可能是一个表,或者是上面的其中一个......

我们会解开这个谜题 ;-)

关于sql - 从只有一种格式的数据库中的查询中获取 "Cannot resolve the collation conflict"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33398768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com