修改数据库所有者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)'    

相关文章: