从SQL Server

时间:2017-06-04 16:36:02

标签: sql-server

SELECT  
    OBJECT_NAME(object_id), 
    OBJECT_DEFINITION(object_id)
FROM 
    sys.procedures
WHERE 
    OBJECT_DEFINITION(object_id) LIKE '%xxxx%'

上述查询显示存储过程定义,但结果显示在一行中。这真的很难读。

我尝试按文字更改显示结果。但它的最大长度限制为8000个字符。

有什么方法可以查询可读的存储过程定义或我可以用来将单行存储过程转换为更易读的脚本的任何工具。

1 个答案:

答案 0 :(得分:0)

您可以将定义导出到文件。 如果您想要查看某个处理容器的某些文本,可以使用红门免费工具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