码迷,mamicode.com
首页 > 数据库 > 详细

sql server排序规则冲突

时间:2020-04-15 10:53:34      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:collate   链接服务器   比较   strong   object   字符编码   png   解决   alt   

问题1:

  技术图片

 

解决:

  数据库的排序规则不同,a表为临时表,用的是tempdb的排序规则,tempdb一般用的实例默认的排序规则。

  而 b表用的是db_tank的排序规则,所以在两个表做字段匹配、计算等操作时会报错排序规则冲突。

set @mdf=(SELECT dsize/1024 FROM #tf_driver a,db_tank..sysfiles b WHERE b.name=Db_Tank_Data and a.driver COLLATE chinese_prc_ci_as =LEFT(b.FILENAME,1))
set @ldf=(SELECT dsize/1024 FROM #tf_driver a,db_tank..sysfiles b WHERE b.name=Db_Tank_Log and a.driver COLLATE chinese_prc_ci_as =LEFT(b.FILENAME,1))

 

 

问题2:

  两个不同版本的sql server ,本地的是2005,链接服务器的是2008R2,排序规则不一致,无法直接比较连接

   技术图片

解决:见最后一行

select t1.name,t1.system_type_id,t1.user_type_id,t1.max_length,t2.* from (
select * from test2.sys.columns where object_id=object_id(Sys_Users_History)
) t1 join (
select t2.name tab_name,t1.name,t1.system_type_id,t1.user_type_id,t1.max_length
from [10.1.4.234].db_tank.sys.columns t1 
join [10.1.4.234].db_tank.dbo.sysobjects t2  on t1.object_id=t2.id and t2.name = Sys_Users_History
) t2 on t1.name=  t2.name collate Chinese_PRC_90_CI_AI

 

参考文章:

  修改sql server实例、数据库、表、字段的排序规则

  (3.6)常用知识-字符编码与排序规则

sql server排序规则冲突

标签:collate   链接服务器   比较   strong   object   字符编码   png   解决   alt   

原文地址:https://www.cnblogs.com/gered/p/12703551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!