在SQL Server 2005(2008)中用T-SQL插入中文数据时出现的问号或乱码的解决方案

转载 2011年11月08日 21:21:26
病症表现为:主要表现为用 T-SQL 语句插入中文数据时数据库显示全是问号“???”

解决办法:

第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→把选项中的排序规则设置成:Chinese_PRC_90_CI_AS→最后点击确定即可。(注意:在选择数据库属性的时候必须确保你所修改的数据库未被使用才可以修改否则会失败的

第二种办法:首先打开你的sql查询分析器(新建查询),然后输入以下代码执行即可:

 

ALTER DATABASE 数据库名 COLLATE Chinese_PRC_90_CI_AS

解析原因:出现以上情况主要是因为数据库属性的排序规则设置不正确,在Microsoft SQL Server 2005 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。如:
  Chinese_PRC_90_CI_AS

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
  _BIN 二进制排序
  _CI(CS) 是否区分大小写,CI不区分,CS区分
  _AI(AS) 是否区分重音,AI不区分,AS区分   
  _KI(KS) 是否区分假名类型 KI不区分,KS区分 
  _WI(WS) 是否区分宽度 WI不区分,WS区分 

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项(完)。

****************************************************************

以上就是解决问题的办法,希望能帮上大家。

· 本文由 木炭 发布在《激情燃烧的木炭》 上,原文地址为:http://www.woodcoal.cn/technology/knowledge/2010321-8200-540.html(转载请保留本信息、全文内容和链接)


MS-SQL中Insert操作插入的中文变成问号"???"的解决办法

      编写的新闻管理系统添加新闻以后标题和内容都变成了"???",插入语句如下:insert into news_info(info_title,info_content) values(标题,...
  • xw13106209
  • xw13106209
  • 2010年05月20日 11:50
  • 8578

在SQL Server 2005(2008)中用T-SQL插入中文数据时出现的问号或乱码的解决方案

病症表现为:主要表现为用 T-SQL 语句插入中文数据时数据库显示全是问号“???” 解决办法: 第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对...
  • Feng______
  • Feng______
  • 2011年11月08日 21:21
  • 1128

Mysql插入中文变为全问号???的问题 解决方法

当通过程序或者mysql客户端插入数据的时候出现中文变成??这种类似的乱码时,多半是由于数据库编码的问题 1.如果是Java程序,则在url连接的地方加上?useUnicode=true&chara...
  • zhouyan8603
  • zhouyan8603
  • 2015年07月28日 16:27
  • 6443

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案!!!!

病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号“???” 解决办法:第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→...
  • wwwtete
  • wwwtete
  • 2009年02月15日 11:45
  • 1616

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号“???” 解决办法:第一种办法:先选中出错的数据库→选...
  • htl258
  • htl258
  • 2009年03月20日 11:32
  • 13840

SQL server显示中文为??的解决方法

SQL serve表格显示中文为??的解决方法 SiteName、County数据类型设置的为nvarchar。 INSERT "DeviceSite"("DeviceID","SiteName"...
  • dengta_snowwhite
  • dengta_snowwhite
  • 2010年07月14日 10:59
  • 1985

用insert语句写入汉字变成问号的解决

把字段变成nvrchar 或者在insert 语句前加n
  • tongdengquan
  • tongdengquan
  • 2011年04月02日 11:28
  • 451

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 .

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案   病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号“???” 解决办法: 第一种办...
  • pengxuan
  • pengxuan
  • 2011年10月13日 08:55
  • 374

在SQLServer2005中使用SQL语句插入数据出现乱码或问号的解决方法

在SQLServer2005中使用SQL语句插入数据出现乱码或问号的解决方法 参考文章:http://blog.csdn.net/htl258/article/details/4007035  错...
  • wuxiaokaixinguo
  • wuxiaokaixinguo
  • 2013年04月09日 14:39
  • 4864

SQLserver2005中插入汉字变成问号的解决办法

关于SQL server2005中插入汉字变成问号的解决办法 这一问题曾困扰本人多时,经过网友的提示与自己的摸索,总结如下: 1、右击你所建的数据库,点击“属性”,选择“选项”并点击。it.Phont...
  • sdtsfhh
  • sdtsfhh
  • 2009年03月18日 08:51
  • 494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在SQL Server 2005(2008)中用T-SQL插入中文数据时出现的问号或乱码的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)