紧急求助:在SQL Server 2000 如何设置SQL语句对大小写敏感?

happyjyr 2005-10-03 08:34:18
因为Solaris对SQL脚本敏感,所以想在SQL Server 2000 中设置这一项,减少Solaris版本出错的几率
,有哪位大虾知道请回复,万分感激!!

如果方便也请发到jiangyingru66248@huawei.com中,以便及时看到回复,谢谢了!!
...全文
307 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellowork 2006-06-30
  • 打赏
  • 举报
回复
学习...
Anhowe 2006-06-30
  • 打赏
  • 举报
回复
方法一.安装SQL时选择区分大小写
或安装完以后重建mastar,选择区分大小
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe

方法二.
alter database 数据库 COLLATE Chinese_PRC_CS_AS
修改排序规则,改成大小写敏感的排序规则
如果只修改一个表,用alter table语句
如果修改一个库的默认排序规则,用alter datebase语句
如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库
--指定排序规则就可以了

--示例
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')

--如果你是要求表支持,则可以建表时指定排序规则,这样replace就不用写排序规则了

--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')

select replace(a,'a','test') from tb

drop table tb

指定排序规则即可

Windows 排序规则名称
在 COLLATE 子句中指定 Windows 排序规则名称。Windows 排序规则名称由排序规则指示器和比较风格构成。

语法
< Windows_collation_name > :: =

CollationDesignator_<ComparisonStyle>

< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN

参数
CollationDesignator

指定 Windows 排序规则使用的基本排序规则。基本排序规则包括:

当指定按字典排序时应用其排序规则的字母表或语言


用于存储非 Unicode 字符数据的代码页。
例如 Latin1_General 或法文,两者都使用代码页 1252,或土耳其文,它使用代码页 1254。

CaseSensitivity

CI 指定不区分大小写,CS 指定区分大小写。

AccentSensitivity

AI 指定不区分重音,AS 指定区分重音。

KanatypeSensitive

Omitted 指定不区分大小写,KS 指定区分假名类型。

WidthSensitivity

Omitted 指定不区分大小写,WS 指定区分大小写。

BIN

指定使用二进制排序次序。



如果你只是目前查询区分,那么还是不要这样改,免得又反悔,如此查询:
select * from a
/*
a_nam a_add
---------- ----------
1 aa
1 bb
2 cc
2 vv
2 kk
3 dd
3 ee
4 dd
5 ee
6 yy
6 yy

(11 row(s) affected)
*/
现在我们查询a_add = 'aa'的,'Aa'等等不行!
Example 1:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'aa'
/*
a_nam a_add
---------- ----------
1 aa

(1 row(s) affected)
*/

Example 2:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'Aa'
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

方法三.上面的记不住,那么就用最笨的方法,转化为ascii
select * from a
where
ascii(substring(a_add,1,1)) = ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1)) = ascii(substring('Aa',2,1))
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

ReViSion 2005-10-03
  • 打赏
  • 举报
回复
--摘自联机帮助
如何创建区分大小写的 SQL Server 2000 实例(安装程序)
创建区分大小写的 SQL Server 2000 实例

运行 SQL Server 安装程序来安装"SQL Server 2000 组件",并选择"安装数据库服务器",然后在 SQL Server 安装向导的"欢迎"屏幕上单击"下一步"按钮。


在"计算机名"对话框中,"本地计算机"是默认选项,本地计算机名显示在编辑框中。单击"下一步"按钮。


在"安装选项"对话框中单击"创建 SQL Server 新实例或安装客户端工具",然后单击"下一步"按钮。


按照"用户信息"和相关屏幕上的指导进行操作。


在"安装定义"对话框中,单击"服务器和客户端工具"选项,然后单击"下一步"按钮。


在"实例名称"对话框中:
若要创建区分大小写的默认实例,请接受"默认"复选框并单击"下一步"按钮。


若要创建区分大小写的命名实例,请清除"默认"复选框并键入实例名称。
在"安装类型"对话框中单击"自定义"选项,然后单击"下一步"按钮。


在"选择组件"、"服务帐户"和"身份验证模式"对话框中,更改或接受默认设置,然后单击"下一步"按钮。


在"排列规则设置"对话框中有两个选项:
若要使 Windows 区域设置排序规则区分大小写,请选择"排列规则指示器",然后从列表中选择正确的排序规则指示器。清除"二进制"复选框,然后选择"区分大小写"复选框。


若要使 SQL 排序规则区分大小写,请选择"SQL 排序规则",然后键入正确的排序规则名称。
有关排序规则选项的更多信息,请单击"帮助"按钮。完成选项的设置后,请单击"下一步"按钮。

在随后出现的各对话框中,更改或接受默认设置,然后单击"下一步"按钮。


在完成选项的指定后,请在"开始复制文件"对话框中单击"下一步"按钮。


在"选择授权模式"对话框中,按照许可协议进行选择,然后单击"继续"按钮开始安装。


有关授权的信息,请单击"帮助"按钮或向系统管理员进行咨询。

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧