מאגרי מידע

כיצד ניתן לשנות Owner בחזרה ל dbo לטבלאות ב SQL SERVER 2000?


על מנת לשנות owner לאובייקט table,stored procedure,view etc) יש לפתוח query analyzer ולהריץ את ה stored procedure הבא:

 

EXEC sp_changeobjectowner 'OldOwner.ObjectName', 'dbo'

 

 

יש להחליף את המחרוזת OldOwner בשם של ה owner הקודם.

 

 

אם ברצונכם להחליף את ה owner של כל האוביקטים בפעולה אחת יש להריץ את הקוד הבא ב query analyzer:

 

declare @ObjectName varchar(256)
 
-- we are only interested in USER Objects
 -- not already owned by 'sa'
 -- we don't want keys and constrainst
 
set @ObjectName = (
   
select top 1 [name] from sysobjects
   
where uid <> SUSER_SID('sa')
   
and [type] in ('FN','IF','P','TF','U','V')
   )
 
declare @ObjectOwner varchar(256)
 
declare @ObjectFullName varchar(512)
 
declare @NewOwner varchar(256)
   
set @NewOwner = 'dbo'
  
   
-- default to 'dbo' if null
   
set @NewOwner = isnull(@NewOwner, 'dbo')
  
 
while @ObjectName is not null
 begin
   select 
@ObjectOwner = USER_NAME(uid) 
     
from sysobjects where [name] = @ObjectName
   
set @ObjectFullName = @ObjectOwner + '.' + @Objectname
   
PRINT 'Changing ownership of ''' + @Objectname + 
     
''' from ''' + @ObjectOwner + ''' to ''' + 
     @NewOwner + 
''''
   
execute sp_changeobjectowner @ObjectFullName, @NewOwner
   
set @ObjectName = (select top 1 [name] from sysobjects
     
where uid <> SUSER_SID('sa') 
     
and [type] in ('FN','IF','P','TF','U','V'))
 
end 

הערה:

השימוש בקוד זה הוא באחריות המשתמש בלבד.

 

 

 

 



נכתב ע"י: LiveDNS Ltd  אחסון אתרים | תאריך: 14/04/2007
צפיות: 3533

חזרה לדף קודם