sql批量修改表名(前缀)亲测

exec   sp_msforeachtable    
@command1='
  declare   @o   sysname,@n   sysname    
  select   @o=''?''  
  ,@n=stuff(@o,1,charindex(''].[fg_'',@o)+6,''fgjzw_'')  
  ,@n=left(@n,len(@n)-1)  
  exec   sp_rename   @o,@n',  
  @whereand='   and   o.name   like   ''fg_%'''

declare @oldName varchar(30), @newName varchar(30)
declare cursor_taname CURSOR FOR SELECT name,name as newname FROM sysobjects where type='u'
OPEN cursor_taname FETCH NEXT FROM cursor_taname INTO @oldname,@newName WHILE @@FETCH_STATUS=0
BEGIN set @newName=Replace(@newName,'W_','M_') print(@oldname+', mailto:%20+@newName) EXEC sp_rename @oldname,@newName FETCH NEXT FROM cursor_taname INTO @oldname,@newName

END CLOSE cursor_taname DEALLOCATE cursor_taname

 declare @oldName varchar(30),
 @newName varchar(30)
declare cursor_taname   CURSOR   FOR  
SELECT name,upper(name) as newname FROM sysobjects where type='u'
OPEN   cursor_taname  
FETCH   NEXT   FROM   cursor_taname   INTO   @oldname,@newName
WHILE   @@FETCH_STATUS=0     
  BEGIN 
SET @newName=(replace(@oldname,'Ad','Fzw_Ad'))
 print(@oldname+',   '+@newName)
EXEC   sp_rename  @oldname,@newName
 FETCH   NEXT   FROM   cursor_taname   INTO   @oldname,@newName
  END     
CLOSE   cursor_taname  
DEALLOCATE   cursor_taname

警告: 更改对象名的任一部分都可能会破坏脚本和存储过程。

刷新数据库表名修改成功!

原文地址:https://www.cnblogs.com/xlfj521/p/2316650.html