将数据库所有表和字段首字母变成大写

随着数据库的规模越来越大,数据库的表也有成百上千,如果需要对数据库表名及字段名做操作,单个还好,直接一条语句搞定了,但如果要对整个库的所有表和字段名做操作,那就显得有点麻烦了。因此,我们需要利用sql语句做批量表名字段名修改操作。

首先,来了解一下数据库中读取表名字段名的函数: 
1.获取所有数据库名: 
Select Name FROM Master..SysDatabases

2.获取所有表名: 
select name from sysobjects where type='U' 
XType='U':表示所有用户表; 
XType='S':表示所有系统表;

3.获取所有字段名: 
Select Name from SysColumns Where id=Object_Id('TableName')

接下来可以用游标来实现修改所有表明和字段名:

declare @tablename varchar(50) declare @columnname varchar(50) declare cur_table cursor for select name from sysobjects where type='U' open cur_table  fetch next from cur_table into @tablename while @@fetch_status=0 begin -----------------------------------------   declare cur_column cursor for select name from syscolumns where id=Object_Id(@tablename) open cur_column  fetch next from cur_column into @columnname while @@fetch_status=0 begin   declare @ch varchar(50),@ch1 varchar(50),@uppertablename varchar(50)   set @ch=@tablename+'.'+@columnname   set @ch1=upper(substring(@columnname,1,1))+substring(@columnname,2,len(@columnname)-1)   set @uppertablename=upper(substring(@tablename,1,1))+substring(@tablename,2,len(@tablename)-1)   exec sp_rename @tablename,@uppertablename   exec sp_rename @ch,@ch1,'column' fetch next from cur_column into @columnname end close cur_column deallocate cur_column ----------------------------------------- fetch next from cur_table into @tablename end close cur_table deallocate cur_table 

执行后整个数据库的表名和字段名都会变成首字母大写的形式。

原文地址:https://www.cnblogs.com/taomylife/p/4679452.html