下面还有篇转自网络的文章
提问:
我想更改数据库中存储过程的所有者,因为存储过程有很多,没办法一个个更改,我是这样打算的,
先用 select name from sysobjects where xtype=p and name like xxx%取的数据库中的我需要的存储过程名称,我的存储过程是以xxx_***的方式命名的,
然后调用sp_changeobjectowner存储过程来进行更改,但是这个循环语句怎么写呢?
回答:
用游标来实现循环的
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