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

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

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

然后调用sp_changeobjectowner存储过程来进行更改,但是这个循环语句怎么写呢?
...全文
118 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧