最近在玩Discuz NT版,问题也不少

最近接触Discuz NT 2.0版,由于开源,而且Discuz的PHP版在国内已经有很多的忠实用户。

但在不断了解过程中发现经常有调用Sql Server的错误,使用SQL Server Profile跟踪一下执行语句,结果发现是SQL语句的字段名与实际字段的大小写不符,开始的时候我就简单将表单改为对应的大小写,但在表[dnt_tablelist]中调用的语句出现了2种方法,这下可急坏我了,到Google搜了一下,只要把区分表名大小写修改一下就可以了:

怎样在MS SQL 2000中设置 区分表名大小写?

更改排序规则。

alter database 数据库 collate 排序规格


其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。

如:alter database 数据库 COLLATE Chinese_PRC_CI_AS
    不区分大小写,而
    alter database 数据库 COLLATE Chinese_PRC_CS_AS
    使之区分大小写。

使用如下命令,可以获得更多的规则:
SELECT *
FROM ::fn_helpcollations()

 

create database mmmgouse mmmgoALTER DATABASE mmm collate chinese_prc_CS_Aigocreate table test (a varchar(100))goinsert test values('aabb')go---select * from Test where a ='AaBb'  这个会报错!select * from test where a='AaBb'

 


ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写

现在发现一个那么知名的一个开源的论坛代码也写得那么不规范,无言!

posted on 2008-02-25 15:08  Ооo酷鱼  阅读(338)  评论(0编辑  收藏  举报

导航