2009-11-13 15 views
6

"EXEC sp_helptext Nesnesi" kullanarak bir sorgu çalıştırıyorum, ancak bir sütun adı Metin ile birden çok satır döndürür. Bu değeri tek bir dizeyle birleştirmeye çalışıyorum ancak T-SQL kullanarak bunu yapmanın en iyi yolunu bulmaya çalışırken sorun yaşıyorum. Satır yerine sonları kullanmak isteyebilirsiniz böyleceTek bir dize olarak sp_helptext sonuçlarını alın

cevap

11

Sen, tek satırda her şeyi geri getirecek bu

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 

Bu gibi bir şey deneyebilirsiniz.

+0

Perfect! Harika çalıştı. –

+0

@gbn cevabı bence hem temiz, hem de işi yapıyor. – Treborbob

4

SQL Server (astander yanıtında varchar (max) tarafından uygulanır) 2005 ve üzeri varsayarsak, neden sadece bu çok çekici değil bu

SELECT OBJECT_DEFINITION('MyObject') 

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

Bunu kullanarak SQSH bana verir: Unicode verileri bir Unicode-only harmanlama veya ntext verisinde DB-Library (ISQL gibi) veya ODBC sürüm 3.7 veya daha önceki sürümleri kullanılarak istemcilere gönderilemez. –

2

birini kullanın ama işe yarıyor değil ...

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 
İlgili konular