隨着數據庫的規模愈來愈大,數據庫的表也有成百上千,若是須要對數據庫表名及字段名作操做,單個還好,直接一條語句搞定了,但若是要對整個庫的全部表和字段名作操做,那就顯得有點麻煩了。所以,咱們須要利用sql語句作批量表名字段名修改操做。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')fetch
接下來能夠用遊標來實現修改全部代表和字段名:code
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
執行後整個數據庫的表名和字段名都會變成首字母大寫的形式。string