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

简介:

在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区分 

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项(完)。
欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2011/03/04/1971122.html
相关文章
|
SQL 关系型数据库 MySQL
解决sql插入字符串中包含‘单引号问题
解决sql插入字符串中包含‘单引号问题
1198 2
解决sql插入字符串中包含‘单引号问题
|
2月前
|
SQL 关系型数据库 MySQL
如何查看SQL字符编码:详细技巧与方法
在SQL数据库管理中,字符编码对于确保数据的正确性和一致性至关重要
|
2月前
|
SQL 存储 数据库
如何查看SQL字符编码
在SQL数据库系统中,字符编码对于数据的正确存储、检索和显示至关重要
|
7月前
|
SQL
sql语句将数字格式修改为字符
sql语句将数字格式修改为字符
|
SQL 关系型数据库 Oracle
sql 截取字符串
原文:sql 截取字符串 MySQL:   1、LOCATE(substr , str ):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,则返回0;   2、POSITION(substr  IN str ):返回子串 substr 在...
3958 0
|
SQL
where like,SQL 提供了四种匹配方式
where like,SQL 提供了四种匹配方式
331 0
|
SQL 数据处理 数据库
|
SQL 关系型数据库 MySQL
字符编码,竟然也是 SQL 不走索引的元凶之一。。
引言 某个忙(mo)碌(yu)的下午,旁边的刘哥(老江湖,从业5年+)突然发出了一声叹息:“哎,mysql 出bug了,有索引不走”。 作为一个热心的人,我立即说到:“是不是,对索引字段做了函数操作”。
82 0
字符编码,竟然也是 SQL 不走索引的元凶之一。。
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 6 章 数据操纵_6.4. 从修改的行中返回数据
6.4. 从修改的行中返回数据 有时在修改行的操作过程中获取数据很有用。INSERT、 UPDATE和DELETE命令都有一个支持这个的可选的 RETURNING子句。使用RETURNING 可以避免执行额外的数据库查询来收集数据,并且在否则难以可靠地识别修改的行时尤其有用。
1031 0