על מנת לשנות 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
הערה:
השימוש בקוד זה הוא באחריות המשתמש בלבד.