Trigger para inserir em outra tabela
25/10/2017
0
Estou com uma duvida aqui não sei se por trigger poderá ser resolvido, tenho uma tabela que recebe 4 linhas ou seja 4 novos valores, preciso ordenar um campo de cada linha em ordem crescente e inserir em outra tabela em somente uma linha, ou seja cada novo valor sera um campo da linha inserida.
Alguem sabe se por trigger poderá ser feito ou de outra forma?
att
Kaio
Posts
25/10/2017
Allan Monteiro
1 - abacate
2 - morango
3- uva
4-pera
e na tabela B você quer inserir 1 - abacate, morango, pera, uva. Certo?
Se sim (eu não conheço muito de SQL Server), mas você pode pegar os valores inseridos na tabela A e fazer o seguinte:
coalesce((select cast(o.NOMECAMPO as varchar(4000)) + ',' AS [text()]
from A o with (nolock)
where A.ID = B.ID
FOR XML PATH(''),TYPE).value('.[1]','VARCHAR(MAX)'),'')
Ele vai pegar todos os campos da tabela A e "concatenar" em uma linha separando por vírgula, assim você pode trabalhar no insert da tabela B.
Qualquer coisa avisa aí, estou aprendendo SQL server também.
https://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/
25/10/2017
Venancio Alves
25/10/2017
Allan Monteiro
No Oracle você pode usar o LISTAGG
exemplo de uso: Select LISTAGG(campo, ',') from tabela
Mas se não me engano, não são todas as versões que possuem este comando.
25/10/2017
Kaio
Nao sera concatenado, sera um registro em cada campo.
Exemplo
campo1 = abacate , campo2 = morango ...
Minha duvida é como fazer um insert de 4 registros de uma vez em uma unica linha por trigger
Clique aqui para fazer login e interagir na Comunidade :)