CREATE PROC [dbo].[sp_viewProcScript]
@procName NVARCHAR(128)
AS
set nocount on
set @procName=replace ( @procName , '[' , '' )
set @procName=replace ( @procName ,']' , '' )
declare @text nvarchar(4000);
select row_number() over(order by b.colid asc ) AS id, b.text
into #temp
from sys.sysobjects as a with(nolock)
join sys.syscomments as b with(nolock)
on a.id=b.id and a.xtype='p' and a.name=@procName
declare @index smallint=1;
declare @allcount smallint=0;
select @allcount=count(ID) from #temp
while(@index<=@allcount)
BEGIN
select @text=text from #temp where id=@index
print @text
set @index=@index+1
END
drop table #temp
GO
测试:
exec sp_viewProcScript '存储过程名'
设置快捷键后,可以直接选中存储过程名称,按快捷键就可以输出内容