SQLServer数据库区分大小写的几种方法 (转)

关于sqlserver2014主键不能区别大小写(大小写不敏感)问题的解决方法 关于sqlserver2014主键不能区别大小写问题的解决方法 sqlserver2014默认的排序规则导致对字母的大小写不敏感,在主键有着大小写不同的情况时系统区分不出来。下面我来举个例子。 我们先新建一张以id为主键的测试表 之后插入两条主键大小写不同的数据运行 结果就会报违反了 PRIMARY KEY 约束“pk_test”。不能在对象“dbo.test”中插入重复键。重复键值为 (A)... 阅读详情
AI摘要

本文介绍如何解决 SQL Server 中大小写不敏感的问题,包括通过修改表列的 collation 设置、创建用户自定义函数来进行字符串比较、利用 convert 函数实现大小写敏感的查询等多种方法。

刚刚使用sql server没有几天, 发现一个很郁闷的问题, sql server 竟然不区分大小写. 比如: select * from abc_tbl where field_1 = 'abc', 这个sql跟这个sql是一样的: select * from abc_tbl where field_1 = 'ABC', 上网search了一下, 赶紧收藏:

第一种:(蟋蟀)
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          --区分大小写

alter database 数据库 COLLATE Chinese_PRC_CS_AS  (指定整个数据库)

第二种:(tree)
--创建如下用户自定义函数(UDF)

CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
--ALTER FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
RETURNS INTEGER
AS
BEGIN
  DECLARE @i INTEGER
  --DECLARE @Str1 VARCHAR(50)
  --DECLARE @Str2 VARCHAR(50)
  DECLARE @y INT
  --SET @Str1='a'
  --SET @Str2='A'
  SET  @i=0
  --SELECT ASCII(SUBSTRING(@Str1,@i+1,1))
  SET @y=1
  DECLARE @iLen INT
  SET @iLen = LEN(LTRIM(RTRIM(@Str1)))
  IF LEN(LTRIM(RTRIM(@Str1))) < LEN(LTRIM(RTRIM(@Str2))) --THEN
     SET @iLen = LEN(LTRIM(RTRIM(@Str2)))
  WHILE (@i < @iLen)
    BEGIN
      IF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN
         SET @i = @i +1
      ELSE
         BEGIN
           SET @y=0
           BREAK
         END
      END
     RETURN @y
END

测试:
select *
from Table1
Where dbo.StrComp(Field1,'aAbB') =1

第三种:(Oliver)
SQL Server 数据库中的文本信息可以用大写字母、小写字母或二者的组合进行存储。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出现。

数据库是否区分大小写取决于 SQL Server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"Smith",则不能使用搜索条件"=smith"或"=SMITH"。

另外,如果服务器被安装成区分大小写,则必须用正确的大小写字母组合提供数据库、所有者、表和列的名称。如果提供的名称大小写不匹配,则 SQL Server 返回错误,报告"无效的对象名"。

当使用关系图窗格和网格窗格创建查询时,查询设计器始终正确地反映出服务器是否区分大小写。但是,如果在 SQL 窗格中输入查询,则必须注意使名称与服务器解释名称的方式相匹配。

如果服务器是用不区分大小写的选项安装的,则
提示   若要确定服务器是否区分大小写,请执行存储过程 sp_server_info,然后检查第 18 行的内容。如果服务器是用不区分大小写的设置安装的,则 sort_order 选项将设置为"不区分大小写"。可以从查询分析器运行存储过程。

第四种:(非云)
select * from servers where convert(varbinary, name)=convert(varbinary, N'RoCKEY')

第五种:()

ascii('a')再配合Substring()一起用

 
SQL Server 设置数据区分大小写的五种方法 SQL Server 设置数据区分大小写的五种方法: 第一种:在数据库中简单设置一下即可。 第二种: 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 --区分大小写 alter database 数据库 COLLATE Chinese_PRC_CS_AS ............ 立即下载

相关推荐

SQL2008对表名及字段区分大小写

写SQL语句时,可以做到对表名、字段名大小写是要区分。 相当有用

在SQLServer中区分大小写的几种方法

今天碰到这个问题了,问了一下朋友,给出了以下几种解决方法,贴出来大家都看一下:第一种:(蟋蟀)ALTER TABLE tbALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不区分大小写ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_

南京程序员俱乐部 5032

sqlserver 区分大小写的相关设置

sqlserver 区分大小写的相关设置

SQLServer字段内容区分大小写

SQL Server 是不区分大小写的。这意味着可以使用大写或小写字母来编写 SQL 语句,不会影响查询的执行结果。SQLServer数据库大小写敏感字符集是Chinese_PRC_CS_AI,大小写不敏感字符集是Chinese_PRC_CI_AS。无论使用哪种大小写方式,都能正确执行查询并返回结果。

weixin_46266464的博客 7317

基于STM32的智能水温控制系统设计

智能水温控制系统广泛应用于家庭、工业、农业等多个场景,尤其在热水器、恒温泳池和地暖系统中,通过实时监测和调节水温,提高设备的效率和用户的舒适度。本文基于STM32微控制器设计了一个智能水温控制系统,能够实时监测水温、用户设置温度,并根据需要控制加热器或冷却装置,确保水温维持在设定范围内。系统能够根据用户设定自动控制加热和冷却设备,确保水温维持在舒适的范围内,并通过OLED屏实时显示水温信息。在生成的项目基础上,编写水温监测、目标温度设定、加热器和冷却装置控制、OLED数据显示以及超温报警的代码。

2401_88410555的博客 2475

陷波滤波器设计以及Simulink仿真

离散型陷波滤波器设计以及simulink仿真

hmq252198885的博客 3166

SQLServer数据库区分大小写的几种方法

 刚刚使用sql server没有几天, 发现一个很郁闷的问题, sql server 竟然不区分大小写. 比如: select * from abc_tbl where field_1 = abc, 这个sql跟这个sql是一样的: select * from abc_tbl where field_1 = ABC, 上网search了一下, 赶紧收藏:第一种:(蟋蟀)ALTER

WINCOL的专栏 1万+

银河麒麟服务器操作系统V10 SP1:跨架构激活与设备更换无忧指南

本文详细解析了银河麒麟服务器操作系统V10 SP1的跨架构激活新特性。该特性彻底解除了授权与CPU架构的绑定,允许同一份授权在x86、ARM、龙芯等不同架构服务器间灵活使用。文章提供了从新设备激活到硬件更换后保持激活状态的全流程实战指南,并分享了内网环境部署等高级技巧,助力企业简化运维、提升硬件资源管理灵活性。

ff678的博客 353

sqlserver数据库大小写不敏感问题

sqlserver数据库大小写不敏感问题 更多文章欢迎访问个人博客 www.herobin.top c#调用sqlserver数据库发现大小写不敏感,到数据库中查询发现是数据库中大小写就不敏感 解决:是数据库排序规则设置错误。 设置参考值 _CI_AI 不区分大小写、不区分重音、不区分化名类型、不区分宽度 _CI_AI_WS 不区分大小写、不区分重音、不区分化名类型、区分宽度...

qq_24095055的博客 4829

PythonOCC基础使用:建模——倒角倒圆(二维+三维)

占坑

weixin_42755384的博客 4639

关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结

文章目录前言一、网络传输结构及原理1.以太网的工作原理2.TCP/IP协议3.数据链路层(MAC)二、介质独立接口MII,RMII,GMII,RGMII1.MII(Media Independent interface)2.RMII(Reduced Media Independent Interface)3.GMII(Gigabit Medium Independent)4.RGMII(Reduced Gigabit Media Independent Interface)三、物理层芯片(PHY)二、使用步

weixin_44415816的博客 3万+

MSSQL 区分大小写 探究

近日项目中需要从远程服务端下载数据,但是数据有个特点是区分大小写的,所以和我们项目本身上存在冲突,因此做了个实例来研究一下mssql的大小写问题。创建表并查看加入数据的情况--1·情况:不区分大小写的情况if exists (select 1 from sysobjects where name='qufen' and type='U') drop table qufengo--创建表 并添加主键CREATE TABLE qufen( [daxiaoxie] [nchar](10) COLLATE Chin

firetaker的专栏 1375

Power EM与Signal EM解决办法与原理分析

1.面对power EM,首先检查missing via,补全via,还可以加宽,加密局部power mesh,一些power IO出pin有power EM问题,可以叠加多层线和垂直方向补power形成网络降低并联电阻和提供更多电流通路解决,这种方法还可以降低ir drop。3.先进工艺有一个via ladder的方法可以解决power/signal em问题,clock cell出pin绕线或者power rail连接power stripe通过搭梯子的方式连接,原理还是分流。

m0_61544122的博客 4749

mssql 大小写区分方法(总结)

mssql 大小写区分方法(总结)1.--区分大小写select * from a  where a=AbCdE collate Chinese_PRC_CS_AI--区分大小写select * from a  where a=abCdE collate Chinese_PRC_CI_AI--不区分大小写2.如果想让服务器上所有的存储表都区分大小写就需要在安装服务器时设置服务器的排序规

t134679的专栏 1621

手把手教你学simulink(69.3)--毫米波5G/6G 系统场景实例设计并实现基于Simulink的毫米波多用户MIMO通信系统模型

毫米波频段(30 GHz到300 GHz)因其高带宽和高速率特性,成为5G和未来6G通信系统的理想选择。然而,毫米波信号的传播特性较差,容易受到大气吸收、雨衰、建筑物遮挡等因素的影响。为了克服这些挑战并提高通信容量,多用户MIMO(MU-MIMO, Multi-User Multiple-Input Multiple-Output)技术被广泛应用。多用户MIMO技术通过在基站和多个用户之间同时传输多个数据流,充分利用空间资源,从而显著提升系统容量和频谱效率。

MHD0815的博客 493

基于STM32单片机的智能分拣系统

基于STM32单片机的智能分拣系统是一种高效、精准的自动化分拣解决方案,适用于物流、仓储、制造业等领域。该系统利用STM32单片机作为核心控制器,结合传感器技术、电机控制算法和通信模块,实现对物品的自动识别、分类和分拣。通过智能化的设计,该系统能够大幅提高分拣效率,降低人工成本,并减少错误率。基于STM32单片机的智能分拣系统是一种高效、精准、低成本的自动化解决方案,能够广泛应用于物流、制造、环保等领域。

qq_62634009的博客 1940

mysql mssql 安装大小写,mssql 区分大小写的详细说明

mssql 区分大小写的详细说明更新时间:2008年03月05日 21:41:49 作者:mssql区分大小写,没想到mysql也区分大小写。相关的文章稍后奉献给大家1.--区分大小写select*fromawherea='AbCdE'collateChinese_PRC_CS_AI--区分大小写select*fromawherea='abCdE'collate...

weixin_35020262的博客 201

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

mysql ,Oracle,dm ,sqlserver 是否区分大小写?

以下是关于MySQL、Oracle、达梦(DM)和SQL Server在环境、标识符和字符串的维度上是否区分大小写。

qq_20236937的博客 1098

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MSSQL like 查询区分大小写的问题

今天遇到一个问题 要不一批数据里面的一些大写改成小写 改倒是方便 但是因为只能在界面单条单条的改 复核是个问题 而我们数据库权限只有查询 没有太多的权限 开始简单的用like的查询 发现改之前和改之后查询结果一样 查了下文档和百度了下 发现MSSQL的like查询默认是跟随数据库设置的 而数据库建库默认是不区分大小写的... 所以... 然后搜了一些资料

WarDen 1947

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

MSSQL默认是不区分大小写的

SQL排序规则如果要是区分大小写的话,就要改变数据库的排序规则。1、查看系统中所支持的全部排序规则列表         SELECT * FROM ::fn_helpcollations()2、查看当前系统的排序规则.         SELECT   SERVERPROPERTY(Collation)3、改变数据库的排序规则(做ALTER之前,要中断所有用户对此数据库的访问)语法:   

zengzhaojian2003的专栏 1137

数据库如何区分大小写

创建区分大小写的SQL Server 2000实例databaseadmin | 17 七月, 2006 06:13  1.运行 SQL Server 安装程序来安装"SQL Server 2000 组件",并选择"安装数据库服务器",然后在 SQL Server 安装向导的"欢迎"屏幕上单击"下一步"按钮。  2. 在"计算机名"对话框中,"本地计算机"是默认选项,本地计算机名显示在编辑

y380698的专栏 1266

MSSQL 数据库语句原来是区分大小写的啊

一直以来我们都认为数据库语句是不区分大小写,其实这是错误的认识,之所以不区分是因为数据库语言不区分大小写。这里我们以mssql2005中自带的AdventureWorksDW数据库为例。 执行以下语句 SELECT databasepropertyex('AdventureWorksDW','collation') go select top 1 * from Dimaccount

dz45693的专栏 2965

oracle字段区分大小写(一)

以下为转载: 相信大部分用惯了SQL Server的人,刚开始用Oracle肯定会特不习惯,因为通常情况下,Oracle建的表名和字段名都会自动给我们转换为大写的。如下图所示:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 说实话,笔者当初第一次接触Oracle的时候,也看着很不爽,可那会也只能无奈,因为没法解决。所以心理一直在想,如果能显示成区分大小写的该多好啊...

chaofanashuai的博客 9841
上一篇: 更加有效的安装VS2005SP1
下一篇: ASP.NET AJAX入门系列 (转)
wangrumeng
博客等级 码龄21年 33粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值