将sp_helptext的结果作为单个字符串获取

时间:2009-11-13 06:04:02

标签: sql sql-server

我正在使用“EXEC sp_helptext Object”运行查询,但它返回多行,列名为Text。我正在尝试将该值连接到单个字符串中,但我在尝试找出使用T-SQL的最佳方法时遇到了麻烦。

3 个答案:

答案 0 :(得分:13)

您可以尝试这样的事情

DECLARE @Table TABLE(
        Val VARCHAR(MAX)
)

INSERT INTO @Table EXEC sp_helptext 'sp_configure'

DECLARE @Val VARCHAR(MAX)

SELECT  @Val = COALESCE(@Val + ' ' + Val, Val)
FROM    @Table

SELECT @Val

这会将所有内容都带回一行,因此您可能希望使用换行符。

答案 1 :(得分:4)

假设SQL Server 2005及更高版本(在旁观者的回答中暗示为varchar(max)),为什么不简单地使用其中一个

SELECT OBJECT_DEFINITION('MyObject') 

SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID('MyObject')

答案 2 :(得分:2)

这不是很迷人,但它有效......

DECLARE @Table TABLE(
        Val VARCHAR(MAX)
)

INSERT INTO @Table EXEC sp_helptext 'sp_configure'

DECLARE @Val VARCHAR(MAX)

SET @Val = ''

SELECT  @Val = @Val + REPLACE(REPLACE(REPLACE(Val, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')
FROM    @Table

-- Replaces line breaks and tab keystrokes.

SELECT @Val