SQL Server 跨库查询乱码问题

先把以前在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')

乱码问题解决。

 

你可能感兴趣的:(SQL Server 跨库查询乱码问题)