2017-06-04 50 views
0
SELECT 
    OBJECT_NAME(object_id), 
    OBJECT_DEFINITION(object_id) 
FROM 
    sys.procedures 
WHERE 
    OBJECT_DEFINITION(object_id) LIKE '%xxxx%' 

上述查詢顯示存儲過程定義,但結果顯示在一行中。這真的很難閱讀。從SQL Server檢索存儲過程定義

我試圖通過文本更改顯示結果。但它的最大長度限制爲8000個字符。

有沒有什麼辦法可以查詢一個可讀的存儲過程定義或任何工具,我可以用它來將單行存儲過程轉換爲更具可讀性的腳本。

+0

什麼數據庫客戶端? – SandPiper

+0

最後,我右鍵單擊結果網格並將其保存爲文件。它解決了我的問題 –

+0

它是sql server 2008 r2 –

回答

0

您可以將定義導出到文件。 如果你想SEACH其中procesures容器一些文本,你可以使用紅色大門免費工具SQL Search

DECLARE @OLE   INT 
DECLARE @FileID   INT 
DECLARE @File VARCHAR(2000), @Text VARCHAR(max) 


EXECUTE sp_OACreate 'Scripting.FileSystemObject', @OLE OUT 
EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileID OUT, @File, 8, 1 
EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, @Text 
EXECUTE sp_OADestroy @FileID 
EXECUTE sp_OADestroy @OLE