这个问题我很长时间都面临着。我在不同的数据库中有两个表具有相同的列和完全相同的数据类型。但在进行连接或任何其他匹配查询时,我只得到一些结果,我注意到在保持
时LTRIM(RTRIM(UPPER(SourceTable.Column))) =
LTRIM(RTRIM(UPPER(DestinationTable.Column)))
工作正常。我很惊讶地说我在bit和integer列上看到了相同的问题,当我保持LTRIM,RTRIM和UPPER / LOWER时它们也能正常工作。
以下是两个数据库的整理:
Source: SQL_Latin1_General_CP1_CI_AS
Destination: SQL_Latin1_General_CP1_CI_AS
正如您所知,即使我遇到此问题,他们也会进行相同的整理。我可以永久解决这个问题吗?
答案 0 :(得分:0)
如果数据类型完全相同,则可能是您对列实际上具有不同的排序规则 - 您实际上可以对列数级别指定的数据库进行不同的排序规则。我的第一个停靠点是检查。
MSDN resource,引用:
列级排序规则
When you create or alter a table, you can specify collations for each character-string column by using the COLLATE clause. If no collation is specified, the column is assigned the default collation of the database.