sql server排序规则冲突
Posted 郭大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server排序规则冲突相关的知识,希望对你有一定的参考价值。
问题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排序规则冲突的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 R2 中不同数据库排序规则之间的排序规则冲突