最近在玩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
--区分大小写
现在发现一个那么知名的一个开源的论坛代码也写得那么不规范,无言!