日期:2014-05-17  浏览次数:20447 次

【怎样获取存储过程源代码】???????????????????????????????????????
以下代码,虽然能获取到,但是获取的不完整,貌似只能获取前几行的定义,怎样获取完整的啊??
是用代码获取,不是用工具哦。。



SET QUOTED_IDENTIFIER ON 
GO 
SET ANSI_NULLS ON 
GO 
-- GetContentByProcedureName '[dbo].[存储过程名]' 
Create procedure GetContentByProcedureName 
(@ProcedureName nvarchar(500)) 
as 
if exists (select * from dbo.syscomments 
where id=object_id(N''+@ProcedureName+'')) 
select c.text, c.encrypted, c.number, 
xtype=convert(nchar(2), o.xtype), 
datalength(c.text), convert(varbinary(8000), 
c.text), 0 from dbo.syscomments c, dbo.sysobjects o 
where o.id = c.id and c.id = object_id(N''+@ProcedureName+'') 
order by c.number, c.colid option(robust plan) 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
SET ANSI_NULLS ON 
GO


declare @ProcedureName nvarchar(500);
set @ProcedureName = 'sp_addalias';
exec GetContentByProcedureName @ProcedureName
--select @ProcedureName

------解决方案--------------------
sp_helptext @ProcedureName
------解决方案--------------------
sp_helptext ProcedureName

------解决方案--------------------

select name from sys.procedures
--or
select name from sysobjects where type='P'

------解决方案--------------------
方法1:
select 'sp_helptext '+name from sysobjects where type='P'

方法2:【数据库】→指定数据库,右键→【任务】→【生成脚本】,剩下的你应该懂的。

上面方法只用于对用户存储过程,且未被加密。
------解决方案--------------------
引用:
方法1:SQL code
select 'sp_helptext '+name from sysobjects where type='P'

方法2:【数据库】→指定数据库,右键→【任务】→【生成脚本】,剩下的你应该懂的。

上面方法只用于对用户存储过程,且未被加密。

+1