sql server中批量更改对象的所有者
2005-06-20 17:32
351 查看
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 curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@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, @Owner
END
close curObject
deallocate curObject
@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 curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@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, @Owner
END
close curObject
deallocate curObject
相关文章推荐
- 批量更改sql server数据库所有者的对象
- 如何更改SQL Server对象所有者...
- 浅析SQL SERVER一个没有公开的存储过程 (更改对象的所有者)
- 批量更改sql server中表的所有者
- 批量更改sqlserver数据库所有者的对象
- 批量修改 SQL Server 表、存储过程的所有者
- 成批更改sql server数据库所有者的对象
- 成批更改数据库所有者的对象
- 批量修改MYSQL的存储过程或者函数所有者的对象
- SQL Server修改数据库对象所有者(Owner)浅析
- 如何更改数据库对象的所有者?(转)
- SQLServer 过程更改多个对象所有者
- SQL Server(更改所有者、数据库恢复)
- SQL Server 修改表或对象的所有者
- 如何更改sql server表的所有者
- 批量删除Sql Server对象(表,存储过程,触发器)
- SQL_更改sql server 数据库表的所有者
- 成批更改sql server数据库所有者的对象
- 更改数据库所有者的对象
- sql server 批量修改表和存储过程的所有者