1
resposta

Como alterar valores de campos não alterados num Split?

Bom dia, estou utilizando uma procedure em sql para percorrer uma tabela e gerar novos registros, a partir de registros com emails separados por ponto e virgula, porém gostaria de saber como faço para alterar o valor dos campos a partir da criação desses registros, por exemplos. tenho emails num registro, separo os dois e depois o primeiro deve receber o cad_padrao = 1 e o segundo o cad_padrao = 0. Gostaria de saber como faço isso? Obrigado

CREATE PROCEDURE mudancaEmails

AS BEGIN

DECLARE @cad varchar(10)

SET @cad = 1

SELECT Split.#temp_novos_contatos.value('.', 'VARCHAR(100)') AS Email

INTO #temp_novos_contatos

FROM
( SELECT CAST ('' + REPLACE(email, ';', '') + '' AS XML) AS String FROM contato ) AS A CROSS APPLY String.nodes('/M') AS Split ( #temp_novos_contatos );

DELETE FROM contato;

INSERT INTO contato ( email)

SELECT Email FROM #temp_novos_contatos

update contato set cad_padrao = @cad SELECT email, cad_padrao FROM contato

END

-- Executa Procedure exec mudancaEmails
1 resposta

Oi Guilherme, tudo bem? Poderia mostrar um exemplo de alguns desses registros? Obs.: Não precisa mostrar os dados reais, já que e-mail é algo privado. Só queremos saber em qual formato os registros estão armazenados, e como você quer que a tabela de cadastro fique após rodar a procedure.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software