2017-02-06 13 views
0

データベースのストアドプロシージャごとにEXEC sp_helptextを使用します。SQL SERVER QUERY EXEC sp_helptext

EXEC sp_stored_proceduresを使用して、実行するPROCEDURE_NAMEを取得します。EXEC sp_helptext PROCEDURE_NAMEループ内。

ご協力いただければ幸いです。

答えて

0

procのあたりsp_helptextをを呼び出すする必要はありません、あなたは、単一のクエリでそれら全てを取得することができます:

select sm.definition 
from sys.sql_modules sm 
inner join sys.objects o on o.object_id = sm.object_id 
where o.type = 'P' 
0
select 'PRINT ''SET QUOTED_IDENTIFIER ' + case uses_quoted_identifier when 1 then 'ON''' else 'OFF' + '''' end + char(13) + char(10) 
+ 'PRINT ''GO ''' + char(13) + char(10) 
+ 'PRINT ''SET ANSI_NULLS ' + case uses_ansi_nulls when 1 then 'ON''' else 'OFF' + '''' end + char(13) + char(10) 
+ 'PRINT ''GO ''' + char(13) + char(10) 
+ 'GO' 
+ char(13) + char(10) + 'sp_helptext ' + o.name + char(13) + char(10) + 'GO' + char(13) + char(10) 
+ 'PRINT ''GO ''' + char(13) + char(10) 

FROM   sys.all_sql_modules AS m 
JOIN   sys.all_objects AS o 
ON     m.Object_ID = o.Object_ID 
JOIN   sys.schemas AS s 
ON     o.schema_id = s.schema_id 
WHERE   o.is_ms_shipped=0 
------------------------------------------------------ 
-- custom filters below 
------------------------------------------------------ 

and o.type = 'SP' 

sp_helptextをもANSIヌルまたは引用符で囲まれた識別子は、特に何も設定されたかどうかを持っていないので、だから、初めに、他のもののすべてです。このスクリプトは、必要に応じて実行できるスクリプトを作成します。