Usuário com melhor resposta
transformar colunas em texto concatenado

Pergunta
-
Me pediram para criar uma função para gerar uma (ou várias) linha(s) de insert com os seguintes parâmetros:
Nome da tabela
Cláusula where da tabela
Pelo sys.columns e sys.tables eu até consegui fazer a primeira parte do insert até a cláusula VALUES e armazenar em uma variável.
o problema é que preciso de uma maneira de pegar todos os dados das colunas e concatenar.
SET @coluna = (select nome from #campos where id = 4)--@cont)
set @exect = 'SELECT ' + @coluna + ' FROM ' + @tabela + ' WHERE ' + @pk + ' = 40573164'
select @exectonde @coluna é a coluna vigente (como pode ser qualquer tabela, a idéia é fazer um while e pegar por id - coluna.
Depois em @exec monto um select com a coluna vigente.
Precisava pegar o valor da execução desse select [ exec (@exect) ] em uma variável para conseguir concatenar, porém não estou conseguindo fazer isso.
Tentei SET @campo = exec(@exect) mas não funciona. O detalhe é que o banco é 2005.
Qualquer ajuda será bem vinda.
Respostas
-
Fernando, veja se ajuda:
declare @teste table (name varchar(800)) declare @variavel varchar(800) set @variavel = 'select name from sys.syscolumns' insert into @teste exec(@variavel) select * from @teste
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Fernando.Jarcen terça-feira, 22 de janeiro de 2013 18:36
Todas as Respostas
-
-
-
Fernando, veja se ajuda:
declare @teste table (name varchar(800)) declare @variavel varchar(800) set @variavel = 'select name from sys.syscolumns' insert into @teste exec(@variavel) select * from @teste
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Fernando.Jarcen terça-feira, 22 de janeiro de 2013 18:36
-