--更改某个表exec sp_changeobjectowner 'tablename','dbo'
--存储更改全部表CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch@OldOwner as NVARCHAR(128),@NewOwner as NVARCHAR(128)AS
DECLARE @Nameas NVARCHAR(128)DECLARE @Owner; as NVARCHAR(128)DECLARE @OwnerName; as NVARCHAR(128)
DECLARE curObject CURSOR FOR select 'Name'= name, 'Owner'= user_name(uid)from sysobjectswhere user_name(uid)=@OldOwnerorder 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, @NewOwnerend-- select @name,@NewOwner,@OldOwner
FETCH NEXT FROM curObject INTO @Name, @OwnerEND
close curObjectdeallocate curObject
GO