--批量修改数据库对象的所有者
CREATE PROCEDURE dbo.ChangeObjectOwner
@OldOwner as Varchar(40),--对象原所有者
@NewOwner as Varchar(40) --对象新所有者
AS
DECLARE @Name as Varchar(100)
DECLARE @OwnerName as varchar(100)
DECLARE curObject CURSOR FOR
select name from sysobjects where user_name(uid)=@OldOwner order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name
WHILE(@@FETCH_STATUS=0)
BEGIN
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
FETCH NEXT FROM curObject INTO @Name
END
close curObject
deallocate curObject
GO
以SA登陆查询分析器 ,选中你要的数据库
执行exec ChangeObjectOwner '原所有者','dbo'
CREATE PROCEDURE dbo.ChangeObjectOwner
@OldOwner as Varchar(40),--对象原所有者
@NewOwner as Varchar(40) --对象新所有者
AS
DECLARE @Name as Varchar(100)
DECLARE @OwnerName as varchar(100)
DECLARE curObject CURSOR FOR
select name from sysobjects where user_name(uid)=@OldOwner order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name
WHILE(@@FETCH_STATUS=0)
BEGIN
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
FETCH NEXT FROM curObject INTO @Name
END
close curObject
deallocate curObject
GO
以SA登陆查询分析器 ,选中你要的数据库
执行exec ChangeObjectOwner '原所有者','dbo'
CREATE PROCEDURE dbo.ChangeObjectOwner
@OldOwner as Varchar(40),--对象原所有者
@NewOwner as Varchar(40) --对象新所有者
AS
DECLARE @Name as Varchar(100)
DECLARE @OwnerName as varchar(100)
DECLARE curObject CURSOR FOR
select name from sysobjects where user_name(uid)=@OldOwner and xtype='u' order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name
WHILE(@@FETCH_STATUS=0)
BEGIN
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
FETCH NEXT FROM curObject INTO @Name
END
close curObject
deallocate curObject
GO
以SA登陆查询分析器 ,选中你要的数据库
执行exec ChangeObjectOwner '原所有者','dbo'
应该是exec sp_changeobjectowner 'product','obj'