Con questo codice T-SQL è possibile concatenare in un unica stringa i valori contenuti nelle righe di una tabella.
Nell'esempio creo una stringa (@result) con i nomi dei database, separati da una virgola, che hanno il modello di recovery impostato su SIMPLE:

SQL

-- tabella temporanea con i valori da concatenare
DECLARE @tbl TABLE (
	[name] nvarchar(128)
)
-- carico i dati da unire nella stringa
INSERT INTO @tbl
	SELECT [name]
	FROM master.sys.databases
	WHERE recovery_model_desc = 'SIMPLE'

-- x salvare il risultato della concatenazione
DECLARE @result nvarchar(2000)
SET @result = ''
-- temporaneo per i singoli valori
DECLARE @name nvarchar(128)

-- creo un cursore sulla tabella temporanea
DECLARE tbl_cursor CURSOR FOR 
SELECT [name]
FROM @tbl
OPEN tbl_cursor
-- recupero il primo valore
FETCH NEXT FROM tbl_cursor INTO @name
-- ciclo su tutti i valori
WHILE @@FETCH_STATUS = 0
BEGIN
	-- concateno i valori
	SET @result = @result + (case WHEN @result = '' THEN '' ELSE ', ' END) + @name
	-- recupero la prossima riga   
    FETCH NEXT FROM tbl_cursor INTO  @name
END 
CLOSE tbl_cursor
DEALLOCATE tbl_cursor

-- visualizzo la stringa risultante
SELECT @result AS [result]
Tags:
Database75 SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: