[转]修改储存过程所有者

转自:http://www.dreamershop.com/info/n1023c7.aspx

修改储存过程所有者

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 'OldOwner','newOwner'

posted @ 2009-07-22 17:25  xjy  阅读(202)  评论(0编辑  收藏  举报