修改儲存過程所有者

iSQlServer發表於2009-07-23

轉自: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'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-609998/,如需轉載,請註明出處,否則將追究法律責任。

相關文章