改变SQLServer 数据库所有对象的所有者成dbo

/*
brief: 改变数据库所有对象的所有者
author: 吴尔平
date: 2005/12/19
*/

declare @owner varchar(255)
set @owner = 'dbo'

declare @objectname varchar(255)
declare @uid int
declare object_cursor cursor for select [name],uid from sysobjects
where OBJECTPROPERTY (id, 'IsMSShipped') = 0
and (xtype like '%') -- 如果要指定对象的类型,参考 Transact-SQL 帮助-> sysobjects-> xtype
open object_cursor
fetch next from object_cursor into @objectname, @uid
while(@@fetch_status=0)
begin
declare @uidName varchar(255)
select @uidName = [name] from dbo.sysusers where uid = @uid
if @uidName <> @owner
begin
--生成 '所有者.对象名' 格式的字符串
set @objectname = @uidName + '.' + @objectname
--改变对象所有者
exec sp_changeobjectowner @objectname, @owner
end

fetch next from object_cursor into @objectname, @uid
end
close object_cursor
deallocate object_cursor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值