我有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也是一個選項,但我還沒有想出如何將多個連接成一個長文本表。
我的目標是讓我可以從一個文本文件中打印這40個程序的源代碼,並使用我在每個程序中使用的格式。
解決:::由馬丁再次感謝。 我對他的解決方案做了一個小小的調整,拉我需要的特效。 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('')
我不記得所有的菜單的等,並沒有管理Studio在這裏,但是...如果您在數據庫中編寫對象腳本,則可以選擇使用或不使用前面的DROP語句來編寫所有存儲過程的腳本。 – MatBailie