有两个数据库在同一台服务器上,其中一个数据库是拉丁文,另一个数据库是中文,
现在从拉丁文数据库中一个表(该表一些字段是存储的是中文字符)通过SQL 语句导数据到中文数据库中.在查询分析器中关掉Perform translation for character data选项,查询的中文正常显示.现在通过
Insert into   中文数据库的表名  select * from 拉丁文数据库.dbo.表
发现中文数据库中该表的中文数据显示为乱码
怎样处理?

解决方案 »

  1.   

    最好能够让表数据为N(var)char类型
      

  2.   

    中文数据为表中该字段已经是nVarChar类型还是一样乱码
      

  3.   

    准备导入的数据也是N..来存储的吗?两边都是unicode编码问题应该不大
      

  4.   

    我想直接通过SQL语句 Insert ... Select ... From ....直接插入数据的方式实现.拉丁文的数据表是VarChar类型
      

  5.   

    Insert   into       中文数据库的表名     select   convert(nvarchar(8000),拉丁字段)  from   拉丁文数据库.dbo.表 试下 
      

  6.   

    7楼的应该可以 nvarchar改为4000
      

  7.   

    还是乱码,不知有没有人解决过此问题?除非导出到EXCEL后,再重新导回来.
      

  8.   

    通过DTS直接从一个库导到另一个库不会出现乱码.但用SQL语句就会出现乱码,不知有没有解决办法?
      

  9.   


    出现乱码用convert()或者cast()转换一下,转换为nvarchar()类型的
      

  10.   

    我也遇到了和楼主一样的问题,导入导出工具会自动转换,但是在查询分析器中用Insert语句则不行,加Convert函数也不行
      

  11.   


    " Insert   into       中文数据库的表名     select   *   from   拉丁文数据库.dbo.表 "不清楚您这条语句具体是怎么写的,不过除了将字段属性设为 NCHAR NVARCHAR 之类外,还需要在插入语句的 VALUES 的值前加 N如:INSERT INTO TABLE (NAME,SEX)VALUE(N‘先觉’,N‘男’)
      

  12.   

    13楼没理解我的意思.
    不可以.因为数据已存在在拉丁文的数据库中,我的目的是看能不能通过SQL语句直接导到中文数据库中.
    而不是通过DTS来导入.