將數據庫全部表和字段首字母變成大寫

隨着數據庫的規模愈來愈大,數據庫的表也有成百上千,若是須要對數據庫表名及字段名作操做,單個還好,直接一條語句搞定了,但若是要對整個庫的全部表和字段名作操做,那就顯得有點麻煩了。所以,咱們須要利用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

相關文章
相關標籤/搜索