先把以前在msn space上的几篇丢过来
7/10/2008 10:48:00 AM
问题描述:通过openrowset跨库访问其他数据库,发现select出的中文数据就是乱码,更别说插入当前库中了。如:
select * from openrowset('SQLOLEDB','server';'userid';'password',DBNAME.dbo.Table)
解决思路:有乱码的字段显然是varchar类型,sql 2000中,特别容易导致双字节字符乱码。由于问题出在跨库查询(2库默认排序规则相同),因此只要在源库输出数据前将字段转为nvarchar即可。于是改为:
select * from openrowset('SQLOLEDB','server';'userid';'password','select cast(F1 as nvarchar) as F1 from DBNAME.dbo.Table')
乱码问题解决。