没有LTRIM,RTRIM和上/下功能的记录不匹配

时间:2013-01-22 11:01:57

标签: sql-server-2008-r2 collation

这个问题我很长时间都面临着。我在不同的数据库中有两个表具有相同的列和完全相同的数据类型。但在进行连接或任何其他匹配查询时,我只得到一些结果,我注意到在保持

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

正如您所知,即使我遇到此问题,他们也会进行相同的整理。我可以永久解决这个问题吗?

1 个答案:

答案 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.