2011-10-26 11 views
2

私は40種類以上のストアドプロシージャを用意していますが、これを印刷してリファクタリングして、手順を変更することができます。私はいくつかの可能性をいくつか見出してきましたが、これまでのところ私が望むものに合ったものはありませんでしたが、ちょっと微調整すれば解決できるかもしれません。最初SQL Server 2005のストアドプロシージャのソースコードを出力する

select 
    text 
from 
    syscomments 
where 
    id in (select id from sysobjects where xtype='p' and name LIKE 'qscore_Corp%') 

は、これは、単一のライン上のすべてのコードがフォーマットされていない返します。

sp_helptextもオプションですが、複数のテキストを1つの長いテキストテーブルに連結する方法はわかりません。

私の目標は、各手順で使用した書式設定を使用して、これらの40の手順のソースを1つのテキストファイルから印刷できるようにすることです。

解決済み::Martinによって再び感謝します。 私は必要なprocsを引っ張って彼のソリューションに少し微調整を行いました。 DECLAREの@stored_procedure_codeのデータ型はnvarchar(MAX) SETの@stored_procedure_code = ''

SELECT @stored_procedure_code = @stored_procedure_code + '' + ISNULL(OBJECT_DEFINITION(object_id),'') 
    FROM sys.procedures WHERE name LIKE 'qscore_Corp%' 

    SELECT @stored_procedure_code AS [processing-instruction(x)] FOR XML PATH('') 
+2

のようなものスタジオはここですが、...データベース内のオブジェクトをスクリプト化する場合は、前のDROPステートメントの有無にかかわらず、すべてのストアード・プロシージャーをスクリプト化することができます。 – MatBailie

答えて

3

私はすべてのメニューのetcを思い出すことができない、と管理を持っていない

DECLARE @stored_procedure_code nvarchar(MAX) = '' 

SELECT @stored_procedure_code = @stored_procedure_code + ' 
/*****************************************************************************/ 
GO 

' + ISNULL(OBJECT_DEFINITION(object_id),'') 
FROM sys.procedures 
WHERE object_id IN (object_id('foo'),object_id('foo_bar')) 

SELECT @stored_procedure_code AS [processing-instruction(x)] FOR XML PATH('') 
+0

+1これは本当にセクシーな解決策です! – Yuck

+0

驚くべき解決策私は私のオリジナルでコードを投稿するつもりですが、私が作った調整を参考にしてしまったのですが、アイデアのためにとてもマーティンに感謝します。 –

+1

@MichaelCole - あなたは 'name like LIKE 'usp_foo%''と言うつもりだと思いますか?私が 'object_id'を使用した唯一の理由は、あなたが別のスキーマで同じオブジェクト名を持っていたからです。あなたの元のコードに' LIKE'を使用していたことに気づいていませんでした。 –

0
SELECT definition 
    FROM sys.sql_modules m 
     INNER JOIN sys.objects o 
      ON m.object_id = o.object_id 
    WHERE o.type = 'P' 
     AND o.name LIKE 'qscore_Corp%' 
+0

これは私の元のクエリ(最初の解決法ではない)と同じ結果セットをもたらす良い解決策です。私はそれを印刷しようとしていました。紙に変更を加えてデータベースに戻ることができました。変更を加えると、この解決策ではフォーマットがありません。 –

関連する問題