修改数据库表和存储过程的所有者

sql server 批量修改表和存储过程的所有者。
批量修改表的所有者:   
 

EXEC    sp_MSforeachtable    ' exec   sp_changeobjectowner    '' ? '' , '' dbo ''     '   

 

  单个修改表所有者:  

  
   exec   sp_changeobjectowner   '要改的表名','dbo'  


批量修改存储过程的存储过程:

 

ExpandedBlockStart.gif 代码
CREATE     PROCEDURE    ChangeProcOwner   
  
@OldOwner   as     NVARCHAR ( 128 ), -- 参数原所有者   
   @NewOwner   as     NVARCHAR ( 128 ) -- 参数新所有者   
   AS    
    
  
DECLARE     @Name     as     NVARCHAR ( 128 )     
  
DECLARE     @Owner   as     NVARCHAR ( 128 )   
  
DECLARE     @OwnerName   as     NVARCHAR ( 128 )   
    
  
DECLARE    curObject    CURSOR     FOR      
  
select   ' Name '   =    name,   
  
' Owner '   =     user_name (uid)   
  
from    sysobjects   
  
where     user_name (uid) = @OldOwner     and    xtype = ' p '    
  
order     by    name   
    
  
OPEN      curObject   
  
FETCH     NEXT     FROM    curObject    INTO     @Name ,    @Owner    
  
WHILE ( @@FETCH_STATUS = 0 )   
  
BEGIN            
  
if     @Owner = @OldOwner      
  
begin    
  
set     @OwnerName     =     @OldOwner     +     ' . '     +     rtrim ( @Name )   
  
exec    sp_changeobjectowner    @OwnerName ,    @NewOwner    
  
end    
    
  
FETCH     NEXT     FROM    curObject    INTO     @Name ,    @Owner    
  
END    
    
  
close    curObject   
  
deallocate    curObject   
  
GO

 

 

执行

 

exec    ChangeProcOwner    ' xx ' , ' dbo '  

 


或者

 

exec    ChangeProcOwner    ' ' , ' dbo '  

 

 

转载于:https://www.cnblogs.com/284996867/archive/2010/03/16/1686862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值