【发布时间】:2012-06-08 11:03:48
【问题描述】:
我正在使用以下查询,我需要在其中指定排序规则提示以避免跨数据库的排序规则问题,因为此查询使用来自 2 个数据库的表。
消息 468,级别 16,状态 9,第 12 行无法解析排序规则 “Latin1_General_CS_AI”和“Latin1_General_CS_AS”之间的冲突 等于运算。
目前,当我运行一些使用具有不同排序规则的不同数据库的查询时,出现排序规则冲突的错误:
Delete from table1 where oldcolumn in
(
select newcolumn from Database2.dbo.table2
where invoiceid = @invno
and complete = 0
)
我将查询更改为包含如下排序提示:
Delete from table1 where oldcolumn COLLATE SQL_Latin1_General_CP1_CS_AS in
(
select newcolumn from Database2.dbo.table2
where invoiceid = @invno
and complete = 0
)
- 以上查询能解决排序问题吗?
- 在运算符(例如“=”运算符)的左侧或右侧指定整理提示是否相同?
- 像
invoiceid = @invno这样的查询是否会产生运行时排序冲突?
注意:我问这个问题是因为我无权访问上述 2 个数据库中的任何一个,并且脚本将在实际数据库上运行。
【问题讨论】:
-
您忘记描述您现在遇到的“排序规则问题”。您收到错误消息、错误结果还是什么?
-
我收到排序规则冲突的运行时错误。我已经更新了问题。
-
你忘记发布错误信息了。
-
哪个列有哪个排序规则?当
newcolumn = 'résumé'从table2返回时,是否需要删除oldcolumn = 'resume',反之亦然? -
请不要随心所欲。我现在只关心运行时错误。
标签: sql-server collation