--更改某个表exec sp_changeobjectowner 'tablename','dbo'
--存储更改全部表CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128)AS
DECLARE @Name as NVARCHAR(128)DECLARE @Owner as NVARCHAR(128)DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR select 'Name' = name, 'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name
OPEN curObjectFETCH NEXT FROM curObject INTO @Name, @OwnerWHILE(@@FETCH_STATUS=0)BEGIN if @Owner=@OldOwner begin set @OwnerName = @OldOwner '.' rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end-- select @name,@NewOwner,@OldOwner
FETCH NEXT FROM curObject INTO @Name, @OwnerEND
close curObjectdeallocate curObject
GO