[CODE] Cómo concatenar los resultados de una consulta

Como se observa en el artículo [CODE] Cómo obtener la llave primaria de una tabla, es posible concatenar el resultado de una consulta en una variable, lo cual es especialmente útil en la generación de código dinámico:

declare @key varchar(8000)
set @key = ''
SELECT @key  = @key  + COALESCE(TABLE_NAME + ',' , '')  from INFORMATION_SCHEMA.TABLES

if len(@key) > 0 set @key = LEFT(@key,len(@key) - 1) --Eliminar la coma que sobra al final

print @key

Se debe tener en cuenta que existen algunas limintantes, por ejemplo se debe considerar el tamaño máximo de la variable, que dependiendo de la versión de SqlServer puede ser 8000 y usando varchar(max) puede ser máximo de 2,147,483,647 caracteres

Es de notar que usar funciones CLR o funciones de texto avanzadas de SqlServer 2012 puede mejorarse el rendimiento de esta solución

Los comentarios son bienvenidos, espero sea de ayuda,

 

FREDY LEANDRO ANGARITA CASTELLANOS
Sql Server MVP

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *