排序规则问题 SQL_Latin1_General_CP1_CI_AI <-> Chinese_PRC_CI_AS

yuanmu 2005-12-07 12:10:43
a 库用 Chinese_PRC_CI_AS ,b 库用 SQL_Latin1_General_CP1_CI_AI

要将 b 库的一个表中的数据(含中文)定时同步到 a 库的一个表中。

但 a 库中得到的数据显示出来是乱码。

请帮忙解决一下。(不改变 a ,b 库的排序规则)

thanks
...全文
358 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
superunusa 2005-12-08
  • 打赏
  • 举报
回复
我认为应该是数据类型的错误,可能就是UNICODE和非UNICODE的问题。
yesyesyes 2005-12-08
  • 打赏
  • 举报
回复
将数据储存为unocode类型,就不要转了
yuanmu 2005-12-08
  • 打赏
  • 举报
回复
insert into a.dbo.mytable from [127.0.0.1].b.dbo.mytable
yuanmu 2005-12-08
  • 打赏
  • 举报
回复
done
我模拟了实现了
在查询分析器中不选中
工具 -> 选项 -> 连接 -> 执行字符数据的转换

有好几个方法
1 opendatasource 一类openXXX
2 链接服务器
3 本地包导数据

最终选择用链接服务器,自己链接自己。通过链接后检索出来的数据就是已经转码的了。

感谢各位
pbsql 2005-12-07
  • 打赏
  • 举报
回复
怀疑是不是两表的数据类型不对,采用nchar/nvarchar/ntext
samfeng_2003 2005-12-07
  • 打赏
  • 举报
回复
两个库都采用Chinese_PRC_CI_AS

对于,b 库用
select * from 表 order by 列 collate SQL_Latin1_General_CP1_CI_AI
来查询排序
yuanmu 2005-12-07
  • 打赏
  • 举报
回复
在查询分析器中,选中 工具 -> 选项 -> 连接 -> 执行字符数据的转换
出来是乱码,但
select theName collate Georgian_Modern_sort_CI_AS from b.dbo.mytable
显示的结果是正确的,不过插到 a.dbo.mytable 中还是错误的。

说白了,就是将 ISO-8859-1 编码的字符串转成 gb2312 ,用SQL实现。
yuanmu 2005-12-07
  • 打赏
  • 举报
回复
thanks 各位。

具体的情况是:
在查询分析器中,
use b
select * from b.dbo.mytable
如果在
工具 -> 选项 -> 连接 -> 执行字符数据的转换
选中它,结果就是乱码;不选,结果就能显示正确的中文。
至于把表 b.dbo.mytable 的数据插入到 a.dbo.mytable
用 insert into a.dbo.mytable select * collate Chinese_PRC_CI_AS from b.dbo.mytable 不起作用。
yesyesyes 2005-12-07
  • 打赏
  • 举报
回复
就是pbsql(风云)说的,与排序无关
yangyangxie 2005-12-07
  • 打赏
  • 举报
回复
insert into a select * Chinese_PRC_CI_AS from b
gwg2368 2005-12-07
  • 打赏
  • 举报
回复
是不是 数据类型不对哦

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧