2017-06-04 47 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