修改数据库所有者

CREATE   PROCEDURE   dbo.ChangeObjectOwner     
  
@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     
  
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   ChangeObjectOwner   '原所有者','目标所有者(test)'    

转载于:https://www.cnblogs.com/linpengfeixgu/articles/1263216.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值