一、实例介绍

SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下:

例:

--> 创建表,插入数据:

declare @maco table (number int,myvalue varchar(2))

insert into @maco select 1,'aa' union all

select 2,'Aa' union all

select 3,'aA' union all

select 4,'AA'

--不区分大小写

select * from @maco WHERE nn='aa'

--区分大小写

select * from @maco WHERE nn='aa' collate Chinese_PRC_CS_AI

注:我用的是Sql Server 2005。

从上面的例子我们可以看到第一句不区分,而第二句区分。可是每个语句不能都加上个collate Chinese_PRC_CS_AI吧?

我们可以这样,看下面的例子:

例:

--不区分大小写

ALTER TABLE My_table ALTER Column colname nvarchar(100) collate Chinese_PRC_CI_AS

--区分大小写

ALTER TABLE My_table ALTER Column colname nvarchar(100) collate Chinese_PRC_CS_AS

从上面的例子我们可以看到第一句不区分,而第二句区分。可是我们不能每个表都进行一下修改吧?

我们可以再这样,看下面的例子:

例:

--不区分大小写

ALTER DATABASE databasename collate Chinese_PRC_CI_AS

--区分大小写

ALTER DATABASE databasename collate Chinese_PRC_CS_AS

批量修改数据库中所有表内字段大小写敏感

如:

DECLARE @collate nvarchar(100);

DECLARE @table nvarchar(255);

DECLARE @column_name nvarchar(255);

DECLARE @column_id int;

DECLARE @data_type nvarchar(255);

DECLARE @max_length int;

DECLARE @row_id int;

DECLARE @sql nvarchar(max);

DECLARE @sql_column nvarchar(max);

DECLARE @is_nullable int;

DECLARE @nullornot nvarchar(255);

SET @collate = 'Chinese_PRC_CS_AS'; --不区分大小写: Chinese_PRC_CI_AS 区分大小写 :Chinese_PRC_CS_AS

DECLARE local_table_cursor CURSOR FOR

SELECT [name]

FROM sysobjects

WHERE OBJECTPROPERTY(id, N'IsUserTable') = 1

OPEN local_table_cursor

FETCH NEXT FROM local_table_cursor

INTO @table

WHILE @@FETCH_STATUS = 0

BEGIN

DECLARE local_change_cursor CURSOR FOR

SELECT ROW_NUMBER() OVER (ORDER BY c.column_id) AS row_id

, c.name column_name

, t.Name data_type

, c.max_length

, c.column_id

, c.is_nullable

FROM sys.columns c

JOIN sys.types t ON c.system_type_id = t.system_type_id

LEFT OUTER JOIN sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id

LEFT OUTER JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id

WHERE c.object_id = OBJECT_ID(@table)

ORDER BY c.column_id

OPEN local_change_cursor

FETCH NEXT FROM local_change_cursor

INTO @row_id, @column_name, @data_type, @max_length, @column_id,@is_nullable

WHILE @@FETCH_STATUS = 0

BEGIN

IF (@max_length = -1) OR (@max_length > 4000) SET @max_length = 4000;

IF (@is_nullable = 1) SET @nullornot=' not null' ELSE SET @nullornot=''

IF (@data_type LIKE '%char%')

BEGIN TRY

SET @sql = 'ALTER TABLE ' + @table + ' ALTER COLUMN ' + @column_name + ' ' + @data_type + '(' + CAST(@max_length AS nvarchar(100)) + ') COLLATE ' + @collate +' ' +@nullornot

PRINT @sql

EXEC sp_executesql @sql

END TRY

BEGIN CATCH

PRINT 'ERROR: Some index or constraint rely on the column ' + @column_name + '. No conversion possible.'

PRINT @sql

END CATCH

FETCH NEXT FROM local_change_cursor

INTO @row_id, @column_name, @data_type, @max_length, @column_id,@is_nullable

END

CLOSE local_change_cursor

DEALLOCATE local_change_cursor

FETCH NEXT FROM local_table_cursor

INTO @table

END

CLOSE local_table_cursor

DEALLOCATE local_table_cursor

GO

二、参数介绍

Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份(即后缀)含义:

_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分

_AI(AS) 是否区分重音:AI不区分,AS区分

_KI(KS) 是否区分假名类型:KI不区分,KS区分

_WI(WS) 是否区分宽度:WI不区分,WS区分

三、整体介绍

在安装SQL时,我们可以选择区分大小写或安装完以后重建mastar,再选择区分大小

下面是rebuildm.exe 的路径:

C:/Program  Files/Microsoft  SQL Server/80/Tools/Binn/rebuildm.exe

若要修改排序规则,按照上面的参数设置即可。

若只修改一个表,用ALTER   TABLE语句

若修改一个库的默认排序规则,用ALTER DATABASE语句

若修改整个服务器的默认排序规则,用Rebuildm.exe重建master库

mysql批量修改表中大小写_SQL语句大小写是否区分的问题,批量修改整个数据库所有表所有字段大小写...相关推荐

  1. mysql sql查询昨天的数据_sql语句,查询昨天的数据

    如果在程序中,有前台传来两个时间点:beginTime和endTime,在sql查询中的限制条件就是查询昨天的数据,那么可以这样写: 但是如果在这里要查询昨天的数据的话, 则不能简单地在开始时间的那里 ...

  2. mysql怎样添加一条数据_sql语句怎么添加一条记录?

    展开全部 sql语句中,添加记录的语法为:insert into 表名 (col1,col2....coln)values(value1,value2.....valuen): 其中,如果你插入的每一 ...

  3. mysql查询所有课程的分数_Sql语句之查询所有学生所有科目分数及总分

    昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...

  4. db2 删除schema中所有表_常用SQL系列之(六):删除方式、数据库、表及索引元信息查询等...

    本系统为@牛旦教育IT课堂在微头条上的内容, 为便于查阅,特辑录于此,都是常用SQL基本用法.. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  5. mysql表添加完整性约束_SQL语句——完整性约束

    1.MySQL支持的完整性约束 a.主键约束 特点:唯一且非空 主键可以由一个字段组成,也可以由多个字段组成 如果主键由一个字段组成,既可以添加到列级,也可以添加到表级. 如果主键由多个字段组成,则只 ...

  6. MySQL查询被选修的课程_sql语句查询没有被学生选修过的课程(即课程号没有在sc表中出现过)的名称....

    展开全部 1.创建学生及课程表, create table test_student(stu_id number, class_id number); create table test_class( ...

  7. mysql从大到小排序_sql语句时间排序 sql语句按照时间排序

    sql语句时间排序 sql语句按照时间排序以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL按时间排序 select ...

  8. mysql如何查询前几天_sql语句查询mysql怎么取前几天的数据

    满意答案 hong1992416 2015.03.24 采纳率:54%    等级:12 已帮助:12747人 一.当天或当日插入的数据: 1.传统对比判断:SELECT * FROM `t` WHE ...

  9. mysql按课程报名人数排序_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...

    展开全部 代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group b ...

  10. mysql按专业人数升序查询_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...

    代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group by xue ...

最新文章

  1. CPU中的主要寄存器:有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)
  2. 大连理工大学网络教育学院2014年3月份计算机原理课程补考试卷,大连理工大学网络教育2014年3月份自动化控制原理考试模.doc...
  3. 多服务器文件共享,windows多台服务器文件共享
  4. matlab the installer cannot read,MATLAB安装 The installer cannot read the mwinstall.dll… | 学步园...
  5. java 拼图_功能项目拼图将Java 9引入
  6. jmeter 及测试
  7. 移动端的头部标签和meta
  8. Linux内核链表及list_entry解析
  9. 一、数学建模层次分析法(AHP)【清风数学建模个人笔记】
  10. LQR控制实例、传递函数与状态矩阵相互转换
  11. Pandas[加深学习]01-pandas基本数据结构
  12. 从0开始:win10系统下基于V831的目标检测
  13. [NLP自然语言处理]谷歌BERT模型深度解析
  14. 纯干货:分享一些跨境电商客服经常会用到的话术(含中英文)
  15. 电脑耳机没声音怎么设置?(win7/win10电脑耳机没声音的解决方法)
  16. 安卓期末大作业——Android数独游戏
  17. python字典的常用方法有哪些_python中字典常用方法
  18. Java多线程系列—多线程带来的问题(05)
  19. ACM必学知识点清单
  20. 社会工程学 | Yandex mail捆绑域名方法

热门文章

  1. “互联网+创新2.0”、“工业制造4.0战略”、“工业互联网
  2. 【TWVRP】基于matalb蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1579期】
  3. 【数学建模】基于matlab GUI理发店排队模拟系统【含Matlab源码 1116期】
  4. SPSS计算变量(图文+数据集)【SPSS 012期】
  5. ideal pom文件安装到maven库中_不装 maven 直接使用 IntelliJ 的插件来把本地 jar 包加入到 maven 仓库...
  6. python数据框添加一列无列名_Pandas只使用列名创建空数据框
  7. matlab没有曲线,有个程序,运行后只有坐标没有曲线,是怎么回事呢 望大神们解答...
  8. keyshot卡住了还能保存吗_Sketchup建模和渲染能取代3dsMax吗?
  9. python:for循环从list列表的第二个元素开始遍历
  10. java调试程序(eclipse)