MSSQL所有表名、列名转大写的SQL语句

阅读更多
/**
	创建存储过程,可以自行修改,批量加前缀,后缀等等
**/
create proc ToUpCase
as 
declare @xSql varchar(4000),@ySql varchar(4000),@aSql varchar(1000),@bSql varchar(8000)
set @xSql = ''
set @ySql = ''
set @aSql = ''
set @bSql = ''

select @xSql = @xSql + 'sp_rename N'''+name+''',N'''+upper(name)+''';'  from sysobjects  where xtype = 'u'
select @ySql = @ySql + 'sp_rename N'''+b.name+'.'+a.name +''',N'''+upper(a.name)+''',N''column'';' from syscolumns a  ,sysobjects b where a.id = object_id(b.name) and b.xtype = 'u' and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and     a.xtype <>36  

print '更改列名开始......'	
while (charindex(';',@ySql)>0)
	begin 
		set @bSql = substring(@ySql,1,charindex(';',@ySql)-1)
		exec (@bSql)
		set @ySql = stuff(@ySql,1,charindex(';',@ySql),'')
	end 

print '更改表名开始......'
while (charindex(';',@xSql)>0)
	begin 
		set @aSql = substring(@xSql,1,charindex(';',@xSql)-1)
		exec (@aSql)
		set @xSql = stuff(@xSql,1,charindex(';',@xSql),'')
	end 
 
/**
	特别注意:请您在操作时,先备份数据库。
**/
	--以下是执行存储过程的脚本
	--exec ToUpCase

你可能感兴趣的:(SQL,脚本)