Usuário com melhor resposta
UPDATE EM VÁRIOS REGISTROS.

Pergunta
-
Galera, preciso de uma ajuda.
Tenho um campo da tabela1.campolivre que precisa ser atualizada para o valor da tabela2.campo2, porém são vários registros. Quando vou utilizar uma subquery não deixa atualizar, informa que tem muitos registros e não faz. Só que é isso mesmo que eu preciso, atualizar vários registros com um único valor.
Abaixo a query q estou utilizando.
UPDATE FCFO
SET
FCFO.CAMPOLIVRE = '03'
(SELECT CAMPOLIVRE,FCFOCOMPL.ATENDE
FROM FCFO
INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO
WHERE FCFO.CODCOLIGADA = '3'
AND FCFOCOMPL.CODCOLIGADA = '3'
AND ATENDE IS NOT NULL
AND ATENDE = '03')
Respostas
-
seria deste jeito:
UPDATE FCFO SET FCFO.CAMPOLIVRE = FCFOCOMPL.ATENDE FROM FCFO INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO WHERE FCFO.CODCOLIGADA = '3' AND FCFOCOMPL.CODCOLIGADA = '3' AND ATENDE IS NOT NULL AND ATENDE = '03'
Só um detalhe, esse criterio "ATENDE IS NOT NULL AND ATENDE = '03'" pode ser escrito como somente ATENDE = '03', porque se ATENDE é igual à 03 entao automaticamente ele nao é nulo.
Essa query faz a mesma coisa:
UPDATE FCFO SET FCFO.CAMPOLIVRE = FCFOCOMPL.ATENDE FROM FCFO INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO WHERE FCFO.CODCOLIGADA = '3' AND FCFOCOMPL.CODCOLIGADA = '3' AND ATENDE = '03'
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Robson William Silva sexta-feira, 9 de setembro de 2016 16:40
- Marcado como Resposta Robson William Silva segunda-feira, 12 de setembro de 2016 15:42
Todas as Respostas
-
seria deste jeito:
UPDATE FCFO SET FCFO.CAMPOLIVRE = FCFOCOMPL.ATENDE FROM FCFO INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO WHERE FCFO.CODCOLIGADA = '3' AND FCFOCOMPL.CODCOLIGADA = '3' AND ATENDE IS NOT NULL AND ATENDE = '03'
Só um detalhe, esse criterio "ATENDE IS NOT NULL AND ATENDE = '03'" pode ser escrito como somente ATENDE = '03', porque se ATENDE é igual à 03 entao automaticamente ele nao é nulo.
Essa query faz a mesma coisa:
UPDATE FCFO SET FCFO.CAMPOLIVRE = FCFOCOMPL.ATENDE FROM FCFO INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO WHERE FCFO.CODCOLIGADA = '3' AND FCFOCOMPL.CODCOLIGADA = '3' AND ATENDE = '03'
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Robson William Silva sexta-feira, 9 de setembro de 2016 16:40
- Marcado como Resposta Robson William Silva segunda-feira, 12 de setembro de 2016 15:42
-
Quando eu preciso executar varios updates eu faço assim ,espero que re ajude!
crio um resultset com os ids que quero atualizar e abaixo coloco os criterios no where
UPDATE FCFO
SET FCFO.CAMPOLIVRE = '03'
WHERE FCFO.IdTabela IN (SELECT IdTabela
FROM FCFO
INNER JOIN FCFOCOMPL ON FCFO.CODCFO = FCFOCOMPL.CODCFO
WHERE FCFO.CODCOLIGADA = '3'
AND FCFOCOMPL.CODCOLIGADA = '3'
AND ATENDE IS NOT NULL
AND ATENDE = '03' )Wesley Neves
-
Boa tarde,
Devido a falta de resposta do usuário
essa thread está sendo fechada.
Se o problema ainda estiver ocorrendo,
favor abrir uma nova thread.Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.