刚刚使用sql server没有几天, 发现一个很郁闷的问题, sql server 竟然不区分大小写. 比如: select * from abc_tbl where field_1 = 'abc', 这个sql跟这个sql是一样的: select * from abc_tbl where field_1 = 'ABC', 上网search了一下, 赶紧收藏: 第零种: SELECT ACOLLATE Chinese_PRC_CI_ASFROM dbo.TEST1 WHERE C1 IS NOT NULL; COLLATE Chinese_PRC_CS_AS -- 区分大小写 COLLATE Chinese_PRC_CI_AS --不区分大小写 第一种:(蟋蟀) ALTER TABLE tb (指定某表的某列) alter database 数据库 COLLATE Chinese_PRC_CS_AS (指定整个数据库) 第二种:(tree) CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50)) 测试: 第三种:(Oliver) 数据库是否区分大小写取决于 SQL Server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"Smith",则不能使用搜索条件"=smith"或"=SMITH"。 另外,如果服务器被安装成区分大小写,则必须用正确的大小写字母组合提供数据库、所有者、表和列的名称。如果提供的名称大小写不匹配,则 SQL Server 返回错误,报告"无效的对象名"。 当使用关系图窗格和网格窗格创建查询时,查询设计器始终正确地反映出服务器是否区分大小写。但是,如果在 SQL 窗格中输入查询,则必须注意使名称与服务器解释名称的方式相匹配。 如果服务器是用不区分大小写的选项安装的,则 第四种:(非云) 第五种:() ascii('a')再配合Substring()一起用 |
SQLServer 强制区分大小写
最新推荐文章于 2024-02-21 16:13:05 发布
2011-06-24 17:35