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