标签:
随着数据库的规模越来越大,数据库的表也有成百上千,如果需要对数据库表名及字段名做操作,单个还好,直接一条语句搞定了,但如果要对整个库的所有表和字段名做操作,那就显得有点麻烦了。因此,我们需要利用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
执行后整个数据库的表名和字段名都会变成首字母大写的形式。
标签:
原文地址:http://www.cnblogs.com/taomylife/p/4679452.html