SQL SERVER 2012导出数据库备份文件的问题。
客户要迁移网站,从新加坡迁移到国内,原来的服务器操作系统不知道,只知道是用DNN来做的网站,数据库是SQLSERVER2012,语言不知道。现在的目标服务器,操作系统是WINDOWS2008 中文版,数据库是SQL SERVER 2008 R2,无法直接还原到数据库上,后要求客户重新备份成2008R2的备份文件,可以成功还原。还原后,表中的某些列的字段中的中文变成了问号。据分析,变成问号的都是用原网站上富文本编辑器编辑的内容。
用<input type='text'/>的都是正常的。现在请问一下问题出在哪里?我该怎么将正确的中文弄出来?谢谢。

解决方案 »

  1.   

    这种多语言的迁移最容易出问题的地方就是没有对文本使用nvarchar/nchar类型,导致数据乱码,你需要设置成这两个类型,然后把数据存进去,已经存进数据表里面的数据直接改类型是没有用的。另外如果是2012还原到2008/2008R2的话应该会报错的啊?高版本无法直接还原到低版本的。需要先处理的。
      

  2.   

    看看乱码那一列的数据类型是否是使用Unicode存储的
    例如Nvarchar(128),Nchar(32)什么的
      

  3.   


    嗯  是的 
    我是让他们那边的人给我备份成sql2008版本的
      

  4.   

    SQL Server 的字符集和新加坡那边保持一致就可以了
      

  5.   

    unicode或国际字符集问题引起的。两个层次:1——数据库字符集需要保证一致,2--表列字符集需要保证一致
    alter talle table1name alter column  columnname 字符集关键字 字符集合名称
    3. 如果插入语句到nvarchar之类的列需要对SQL语句前加'N'.
    如insert into demo(id,name) values (1,N'中国')