CREATEPROCEDURE dbo.ChangeObjectOwner @OldOwnerasNVARCHAR(128),--参数原所有者 @NewOwnerasNVARCHAR(128)--参数新所有者 AS DECLARE@NameasNVARCHAR(128) DECLARE@OwnerasNVARCHAR(128) DECLARE@OwnerNameasNVARCHAR(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