分享

写回答

发帖

[提问] 请问怎样修改mssql的排序规则!

GoDaddy GoDaddy 1869 人阅读 | 5 人回复

发表于 2011-4-9 09:20:32 | 显示全部楼层 |阅读模式

我以前用的是asp+access的程序,昨晚把access转换成了sql2000,后面又从sql2000转换到了sql2005。然后使用DPW连接godaddy的sql准备发布数据!可是碰到了下面这个提示
说源数据的排序规则和目标数据库的排序规则不匹配!

请问这个应该怎么办呀?我对mssql不太懂,不知道怎么操作。那位兄弟知道,麻烦赐教一下!

QQ截图未命名.jpg

回答|共 5 个

add.c

发表于 2011-4-9 09:42:24 | 显示全部楼层

参考此贴解决:http://bbs.idcspy.com/thread-102301-1-1.html


一般我们安装的SQL用中文字段排序,默认是按拼音来排的。
但是GD的MSSQL2005不是这样的,那么排序问题怎么解决呢?
很简单,加上我们希望根据什么来(拼音或者笔画)排序的排序规则就好了。举例如下:
城市按拼音排序:
SELECT chineseName FROM [表名] order by chinesename collate Chinese_PRC_CS_AS_KS_WS asc
城市按笔划排序:
SELECT chineseName FROM [表名] order by chinesename collate Chinese_PRC_Stroke_CS_AS_KS_WS   asc
以上代码中GD上调试通过。

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

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

fywssd

发表于 2011-4-9 09:53:20 | 显示全部楼层

呵呵,谢谢版主,不过我还是没搞懂,要如何操作。

add.c

发表于 2011-4-9 17:12:41 | 显示全部楼层

回复 3# 的帖子

类似这样的命令
USE [master]
GO
ALTER DATABASE [kim823] COLLATE Chinese_PRC_CI_AS
GO

fywssd

发表于 2011-4-10 01:13:31 | 显示全部楼层

谢谢版主,排序问题用你的方法已经解决。可是现在新问题又来了,出现"尝试发布表 [dbo].[NC_Article] 数据时出错 (SqlPubWiz)"这样的错误,不知道是什么原因

lwbo1987

发表于 2011-4-11 13:54:52 | 显示全部楼层

回复 5# 的帖子

检查下你的表里面是否有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则