首页 > 代码库 > 解决SqlServer中Collate冲突的问题
解决SqlServer中Collate冲突的问题
使用Sql连表查询的时候会遇到Collate冲突的问题,比如:
select id,Name from [dbo].VMImageunionselect id,Name from [dbo].[DicVMImage]
得到的Error:
Msg 468, Level 16, State 9, Line 1Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the UNION operation.
最开始怀疑可能是由于Db中两个Table的Collate冲突造成的,右键“属性”查看,都是“Chinese_PRC_CI_AS”,是匹配的。
后来看了Server和DB各自的Collate发现,Server:SQL_Latin1_General_CP1_CI_AS DB:Chinese_PRC_CI_AS,以为修改DB的Collate为“SQL_Latin1_General_CP1_CI_AS”就可以了可是还是不行。
后来发现最简单的方法:
select id,Name Collate Database_Default from [dbo].VMImageunionselect id,Name Collate Database_Default from [dbo].[DicVMImage]
就是在我们连表使用时,对于可能出现冲突的字段转成“Database_Default ”
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。