我正在尝试加入两个表,但是我收到了这个错误:
消息468,级别16,状态9,行8无法解决“SQL_Latin1_General_CP1_CI_AS”与“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突 “Latin1_General_CI_AS”等于操作。
这是我使用的代码:
SELECT *
FROM [FAEB].[dbo].[ExportaComisiones] AS f
JOIN [zCredifiel].[dbo].[optPerson] AS p
ON (p.vTreasuryId = f.RFC) COLLATE Latin1_General_CI_AS
我知道这是错误的,它强调 COLLATE 。我不知道如何应用它。
答案 0 :(得分:27)
正确的语法如下所示。请参阅MSDN。
SELECT *
FROM [FAEB].[dbo].[ExportaComisiones] AS f
JOIN [zCredifiel].[dbo].[optPerson] AS p
ON p.vTreasuryId COLLATE Latin1_General_CI_AS = f.RFC COLLATE Latin1_General_CI_AS
答案 1 :(得分:3)
作为一般规则,您可以使用 Database_Default 排序规则,因此您无需弄清楚要使用哪个排序规则。但是,我强烈建议您阅读Simons Liew的出色文章Understanding the COLLATE DATABASE_DEFAULT clause in SQL Server
SELECT *
FROM [FAEB].[dbo].[ExportaComisiones] AS f
JOIN [zCredifiel].[dbo].[optPerson] AS p
ON (p.vTreasuryId = f.RFC) COLLATE Database_Default