|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。server|对照|成绩
/*------------------------------------------------------------------------------------
/*接待转载,请保存本声明信息
/*翁彦enhydraboy@yahoo.com.cn
/*------------------------------------------------------------------------------------
这是一个在我实践一个项目中碰到的成绩。03BHL01001(上海)和03BHL01001(上海)对照的了局是一样的。招致引发的反复的主键成绩。
03BHL01001(上海)和03BHL01001(上海)不同,就在于前者的括号是全角的括号字符,后者是半角的括号字符。全角的括号字符和半角的括号字符的ascii码明显是纷歧样的。全角的(ASCII码是0xA3A8,而半角的(是0x28。那末为何SQLServer会以为是一样的呢?
成绩实在就出在数据库的排序划定规矩上,让我们在细心研读一下SQLServer的文档。SQLServer的排序划定规矩由如许几部分构成,代码页、辨别巨细写、辨别重音、辨别宽度。最初一个在SQLServer的联机匡助中没有进一步说起,实在本篇碰到的成绩就是因为这个缘故原由酿成的。辨别宽度:指定SQLServer辨别不异字符的单字节暗示法(半角)和双字节暗示法(全角)。假如没有选择,则SQLServer将以为不异字符的单字节暗示法和双字节暗示法等效。
缺省,安装SQLServer中文版的时分,SQLServer帮你选择的排序划定规矩是Chinese_PRC_CI_AS(Chinese-PRC,case-insensitive,accent-sensitive,kanatype-insensitive,width-insensitive),是中文,不辨别巨细写、辨别重音、不辨别化名、不辨别宽度。因而,天然就认同03BHL01001(上海)=03BHL01001(上海)。
以是,准确的选择应当是,后缀为WS的中文排序划定规矩。本例中我们应当选择Chinese_PRC_CI_AS_WS。
我们来看一下,指定排序划定规矩是Chinese_PRC_CI_AS_WS后,怎样了?
select1where03BHL01001(上海)=03BHL01001(上海)
collateChinese_PRC_CI_AS_WS
-----------
(所影响的行数为0行)
看来这个成绩办理了。
主要提醒:
怎样观察利用谁人排序划定规矩呢?可使用上面的SQL语句。
SELECT*
FROM::fn_helpcollations()
能够查询一切排序划定规矩的信息。
查出一切中文排序划定规矩的信息
SELECT*FROM
(
SELECT*
FROM::fn_helpcollations())A
WHEREnamelikeChinese%
闪回的目的是要让数据库在commit之后,还能恢复到之前的某个状态,整库或指定的表。 |
|