Free Trial

Fórum

SOLUCIONADO

DELETE WHERE no Alteryx

paulohgallo
Meteoro

Prezados, tudo bem?

 

Como consigo executar um DELETE com condições where no Alteryx?

 

Exemplo tenho um lista de ID que foram cancelados em um tabela, entretanto tenho uma replica desta tabela em outro Servidor/Banco que esses ID estão lá, a ideia é excluir esses registros da tabela deste servidor. Como não existe a necessidade de manter histórico nesta de registros cancelados mas sim só ativos, não preciso ter eles nas duas tabelas.

10 RESPOSTAS 10
carlosteixeira
15 - Aurora
15 - Aurora

Fala @paulohgallo tudo bem?

 

Existem algumas maneiras de se fazer isso.

 

1 - incluindo no Pré-SQL da saída a clausula DELETE como where dos dados que quer excluir.

2 - criar um processo exclusivo apenas para essa deleção

3 - Criar uma Batch macro que le todos os seus registros e exclui a lista da sua base.

 

Qual desses se adequa melhor ao seu problema?

 

Se for algo mais específico por favor de mais detalhes aqui... 😉

 

Abraços

Carlos A Teixeira
paulohgallo
Meteoro

Carlos, obrigado pelas respostas.

 

Acredito que a ultima opção é mais viável, só para entender baseada em uma lista de itens cancelados que vem de uma consulta SQL cruzo ela com a tabela que está em outro Banco e quero excluir essas informações dela. Sendo assim o processo fica de forma automática certo?

 

Tem algum artigo ou exemplo de montar essas macro?

 

 

carlosteixeira
15 - Aurora
15 - Aurora

Fala @paulohgallo  tudo bem?

 

Isso mesmo, você monta uma lista com os ID´s (exemplo) dos dados que quer excluir, faz a entrada como um arquivo txt, ou de algum fuxo, e faz a exclusão dos dados pela macro.

 

To incluindo aqui uma batch macro de exemplo.

 

talvez você precise adaptar um pouco. Se precisar de ajuda me fala.

 

Abraços

Carlos A Teixeira
paulohgallo
Meteoro

@carlosteixeira

 

Para falar a verdade não consegui entender porque usar a macro se no final você usa o Input Manager que contém os dados a serem excluídos.

 

Anexo segue meu workflow.

 

Só para você entender o terceiro input data é onde contém os dados cancelados e cruzo eles com o que tem na minha base atualizada, o resultado do join são os que devem ser excluídos.

carlosteixeira
15 - Aurora
15 - Aurora

Boa tarde meu amigo @paulohgallo.

 

Obrigado pelo Workflow, me fez entender um pouco melhor seu problema.

 

Seguinte, nesse caso a melhor opção, seria o seguinte, você criar uma tabela (stage/Temporária) com os dados que você quer deletar, em seguida vc inclui uma clausula PRÉ ou PÓS SQL que faz a deleção de todos os registros que estiverem na tabela temporária, por exemplo.

 

Veja na imagem abaixo que utilizo um DATA STREAM IN para entrar no SQLSERVER e criar uma tabela temporária com os dados e na segunda saída eu incluí um POS SQL que deleta todos os dados que estiverm na primeira tabela.

 

Assim você não precisaria de Macro para deletar os dados.

 

carlosteixeira2005_0-1591640715944.png

 

Criando a Stage/temporária (no meu caso criei uma tabela de nomeada)

carlosteixeira2005_1-1591640779011.png

 

Criando o pósSQL

carlosteixeira2005_2-1591640815761.png

 

Espero que ajude...Qualquer dúvida me avisa aqui...

 

Abraços

Carlos A Teixeira
paulohgallo
Meteoro

@carlosteixeira , obrigado pela ajuda!

 

Foi muito esclarecedor e faz total sentido a forma de aplicar, entretanto quando eu coloco Data Stream e minha conexão está ocorrendo o seguinte erro: 

 

Error: Data Stream In (47): Error opening connect string: Microsoft OLE DB Provider for SQL Server: Login failed for user 'sysMiddle'.\42000 = 18456

 

Pelo que entendi ele está dando problema de falha de conexão, entretanto em outras ferramenta consigo conectar e alterar os dados no banco. 

carlosteixeira
15 - Aurora
15 - Aurora

Boa tarde @paulohgallo tudo bem?

 

A principio, pelo que pesquisei rapidamente aqui no google, isso seria um erro de usuário e senha.

 

Tenta criar a tabela sem utilizar o DATA STREAM IN e usa o OUTPUT DATA mesmo do IN/OUT com a sua conexão que você já utiliza, acredito que isso vá funcionar para você.

 

Qualquer dúvida é só chamar... 

 

Abraços

Carlos A Teixeira
FláviaB
Alteryx Community Team
Alteryx Community Team

Oi, @paulohgallo. Deu certo ou você ainda está recebendo a mensagem de erro? 

Flávia Brancato
paulohgallo
Meteoro

Flavia, tudo bem?

 

Está tudo ótimo deu tudo certo?

 

Atenciosamente.

Rótulos