Я подправил превосходный пост LostCajun выше для исключения системных хранимых процедур. Я также удалил "Извлечь". из кода, потому что я не мог понять, для чего он нужен, и это дало мне ошибки. Оператору «fetch next» внутри цикла также требовалось предложение «into».
use <<databasename>>
go
declare @aQuery nvarchar(1024);
declare @spName nvarchar(64);
declare allSP cursor for
select p.name
from sys.procedures p
where p.type_desc = 'SQL_STORED_PROCEDURE'
and LEFT(p.name,3) NOT IN ('sp_','xp_','ms_')
order by p.name;
open allSP;
fetch next from allSP into @spName;
while (@@FETCH_STATUS = 0)
begin
set @aQuery = 'sp_helptext [' + @spName + ']';
exec sp_executesql @aQuery;
fetch next from allSP into @spName;
end;
close allSP;
deallocate allSP;