Transact-SQL 里面怎么使用循环语句呢?我想更改存储过程的所有者

xueyhfeng 2005-03-05 07:33:33
我想更改数据库中存储过程的所有者,因为存储过程有很多,没办法一个个更改,我是这样打算的,

先用 select name from sysobjects where xtype='P' and name like 'xxx%'取的数据库中的我需要的存储过程名称,我的存储过程是以xxx_***的方式命名的,

然后调用sp_changeobjectowner存储过程来进行更改,但是这个循环语句怎么写呢?
...全文
93 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xueyhfeng 2005-03-06
晕,执行后,只有部分存储过程执行成功,还有部分提示“对象 'xxx_xxx' 不存在或不是对此操作有效的对象。”

不过没关系了,一小部分,手工改了,感谢雨东。
回复
Blue55 2005-03-05
这个写错了
set @crsrvar=Cursor For select name from sysobjects where xtype='P' and name like 'xxx%'
回复
Blue55 2005-03-05
用游标来实现循环的

declare @CrsrVar cursor
declare @pname varchar(20) --过程名

set @crsrvar=Cursor For select * from sysobjects where xtype='P' and name like 'xxx%'
open @crsrvar
fetch next from @CrsrVar into @pname

while (@@fetch_status=0)
begin
exec sp_changeobjectowner @objname='@pname',@newowner='yyy' --yyy为所有者名
fetch next from @CrsrVar into @pname
end

close @CrsrVar
deallocate @CrsrVar
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-03-05 07:33
社区公告
暂无公告