Posted on
2005-03-19 01:09delphi
阅读(318)
评论(0)
收藏举报
--功能说明:成批更改数据库所有者的对象 --作者:不详 --用法:exec ChangeObjectOwner 'nmkspro','dbo' --即可将所有nmkspro所有者的对象改为dbo所有 --运行成功后将提示:"注意: 更改对象名的任一部分都可能破坏脚本和存储过程。" CREATEPROCEDURE dbo.ChangeObjectOwner
@OldOwner asNVARCHAR(128),--参数原所有者 @NewOwner asNVARCHAR(128)--参数新所有者 AS DECLARE @Name asNVARCHAR(128)
DECLARE @Owner asNVARCHAR(128)
DECLARE @OwnerName asNVARCHAR(128)
DECLARE curObject CURSORFOR select'Name'= name,
'Owner'=user_name(uid)
from sysobjects
whereuser_name(uid)=@OldOwner
orderby name
OPEN curObject
FETCHNEXTFROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN if @Owner=@OldOwner
begin set @OwnerName = @OldOwner +'.'+rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end FETCHNEXTFROM curObject INTO @Name, @Owner
END close curObject
deallocate curObject
GO