更改存储过程的所有者:
declare tb cursor local for
select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['
+replace(name,']',']]')+']'',''dbo'''
from sysobjects
where xtype in('U','V','P','TR','FN','IF','TF') and status>=0
open tb
declare @s nvarchar(4000)
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
go
更改表的所有者:
exec sp_MSforeachtable 'exec sp_changeobjectowner "?","dbo"'
=============
运行时,会提示出错警告,不管它,再运行一次即可。
本文提供了一种方法来批量更改MSSQL2000中表和存储过程的所有者为'dbo'。包括更改存储过程所有者的T-SQL脚本和更改表所有者的存储过程调用。
136

被折叠的 条评论
为什么被折叠?



