数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

成批更改数据库对象的所有者


发布日期:2020年02月22日
 
成批更改数据库对象的所有者

功能说明成批更改数据库对象的所有者

作者不详

用法exec ChangeObjectOwner vsdbo

即可将所有vs所有者的对象改为dbo所有

运行成功后将提示注意: 更改对象名的任一部分都可能破坏脚本和存储过程

Create proc ChangeObjectOwner

@OldOwner as NVARCHAR()参数原所有者

@NewOwner as NVARCHAR()参数新所有者

AS

DECLARE @Name as NVARCHAR()

DECLARE @Owner as NVARCHAR()

DECLARE @OwnerName as NVARCHAR()

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=)

BEGIN

if @Owner=@OldOwner

begin

set @OwnerName = @OldOwner + + rtrim(@Name)

exec sp_changeobjectowner @OwnerName @NewOwner

end

FETCH NEXT FROM curObject INTO @Name @Owner

END

close curObject

deallocate curObject

GO

上一篇:数据库基础:存储过程中如何执行带输出参数的动态SQL

下一篇:检查数据库数据字段命名规范与合法性的脚本