现在的位置: 首页 > 综合 > 正文

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

2013年10月18日 ⁄ 综合 ⁄ 共 1770字 ⁄ 字号 评论关闭

===============================================================

===============================================================

转自:http://www.coblogs.co/Article/3.html

 

使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。

1、登录服务器打开Microsoft SQL Server Management Studio。

2、在要修改的数据库上单击鼠标右键,并选择“属性”。

3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。

4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。

5、点击确定就OK。

varchar修改为nvarchar

char修改为nchar

注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动SQL SERVER服务。


SQL2005中文乱码解决方案 - LQS - 我的舞台,我的心灵空间

两种方法:

1:

安装时不要选 Hide advice configuration options

然后再 Collation designator and order 中选择 Chinese_PRC 就可以了。

2:

在建表时指明某个字段的语言

方法 COLLATE Chinese_PRC_CS_AS_WS

示例:

create table test

(

a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL, 

b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL 

)


insert test values('中文','中文')

插入后 字段 a 为 中文 ,b 为 ??

 

 

 

===============================================================

转自:http://www.cnblogs.com/CodeNote/archive/2011/06/15/2081142.html

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

病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号“???”

解决办法:

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

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

ALTER DATABASE 数据库名 COLLATE Chinese_PRC_90_CI_AS
例如:

USE master
GO
ALTER DATABASE mydb COLLATE Chinese_PRC_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) 是否区分假名类型&defKI不区分,KS区分 
_WI(WS) 是否区分宽度 WI不区分,WS区分 

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

抱歉!评论已关闭.