SQL Server:连接来自两个不同数据库的两个表时出错
我正在使用SSMS,我正在尝试连接来自两个不同数据库的两个表,这两个数据库都位于同一服务器中 这两个表有一个公共SQL Server:连接来自两个不同数据库的两个表时出错,sql,sql-server,join,Sql,Sql Server,Join,我正在使用SSMS,我正在尝试连接来自两个不同数据库的两个表,这两个数据库都位于同一服务器中 这两个表有一个公共id列 我的问题是: select * from db1.dbo.EPH e join db2.dbo.SALARIE s on e.id = s.id 我得到了这个错误: 无法解决“Latin1_General_CI_AI”和“French_CI_AS”之间的排序冲突,操作等于 您的两个数据库没有相同的排序规则。您需要在join中指定“collatedatabase\u DEF
id
列
我的问题是:
select *
from db1.dbo.EPH e
join db2.dbo.SALARIE s on e.id = s.id
我得到了这个错误:
无法解决“Latin1_General_CI_AI”和“French_CI_AS”之间的排序冲突,操作等于
您的两个数据库没有相同的排序规则。您需要在join中指定“collatedatabase\u DEFAULT”子句
select * from db1.dbo.EPH e join db2.dbo.SALARIE s on e.id COLLATE DATABASE_DEFAULT=s.id COLLATE DATABASE_DEFAULT
在Microsoft SQL Server中,可以在列级别设置排序规则。比较(或连接)查询中具有不同排序规则的两列时 例如:
SELECT * FROM db1.dbo.EPH e
JOIN db2.dbo.SALARIE s
ON e.id COLLATE DATABASE_DEFAULT = s.id
尝试使用COLLATE Latin1\u General\u CI\u作为
select *
from db1.dbo.EPH e
join db2.dbo.SALARIE s on
e.id COLLATE Latin1_General_CI_AS = s.id
COLLATE Latin1_General_CI_AS
您的表定义不一致。您必须决定在比较列时使用哪种排序规则。这是否回答了您的问题?是的,很有效,谢谢