Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Como Atualizar Registros de Bases Diferentes?<b> (Resolvido)</b>


Posts Recomendados


  • Tópicos Que Criei:  29
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  78
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  675
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  40

Bom Dia!

Preciso atualizar registros de FCFO.RUA da base atual de acordo com uma base teste!!

Como fazer um UPDATE incluindo estas duas bases?!

BASETESTE.FCFO.RUA para BASEATUAL.FCFO.RUA

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  29
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  78
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  675
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  40

Pessoal, reformatei meu cadastro em uma base teste e agora gostaria de atualizar minha base atual com estas informações..

Alguém já fez este tipo de sentença?

Utilizo SQL Server 2000

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  65
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  654
  • Conteúdo/Dia:  0.11
  • Reputação:   1
  • Pontos/Conquistas:  3.926
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44
  • Dispositivo:  Windows

Boa tarde!

Para buscar dados de outra base deve-se usar o seguinte exemplo:

SELECT * FROM Base_de_Dados.DBO.Tabela

Da forma apresentada acima você poderá estar utilizando uma base e dar um SELECT em outra base, lembrando que para fazer o UPDATE deverá igualar os códigos para não buscar dados aleatórios.

At,

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  29
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  78
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  675
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  40

Obrigado Alexandre.. Farei os testes...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  15
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

E aí Alexandre Beleza?

Antes do Jeferson postar esta dúvida, eu já havia chegado até aí, porém, gostaria de saber se há como eu igualar os códigos de forma que eu não tenha que colocá-los nas condições do "WHERE", por exemplo,

a query ficou assim:

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO

WHERE CODCFO = 'C00001')

WHERE CODCFO = 'C00001'

Ela funciona perfeitamente para o Cliente "C00001", se eu retirar esta filtragem, do CODCFO ela irá colocar o endereço da rua do Cliente C00001 em todos os clientes e fornecedores da base em que estou colocando os dados.

Exemplo:

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO)

Todos os meus Cli/For da base que estou fazendo a inserção ficarão com a Rua do Cliente C00001.

Você sabe se há alguma forma de colocar esta filtragem sem ser necessário igualar cliente à cliente?

Fazer com que a mudança seja feita sem filtragem, mas, registro à registro. Por exemplo, a rua do C00002, da base 1 ir para o Cliente C00002 da base 2 e assim sucessivamente.

Abraços...

Diego

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  65
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  654
  • Conteúdo/Dia:  0.11
  • Reputação:   1
  • Pontos/Conquistas:  3.926
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44
  • Dispositivo:  Windows

Diego, boa tarde!

Neste caso se a base é igual tem os mesmos código pode sim utilizar na cláusula WHERE igualando os código de uma base e outra,

BASE1.DBO.FCFO.CODCFO = BASE2.DBO.FCFO.CODCFO

Tente desta forma!

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  15
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Diego, boa tarde!

Neste caso se a base é igual tem os mesmos código pode sim utilizar na cláusula WHERE igualando os código de uma base e outra,

BASE1.DBO.FCFO.CODCFO = BASE2.DBO.FCFO.CODCFO

Tente desta forma!

Você está dizendo então que a única forma é relacionando código à código de Cli/For?

Por exemplo,

Tenho que fazer um UPDATE com o código C00001, outro UPDATE com o código C00002

Exemplo

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO WHERE CODCFO = 'C00001' )

WHERE CODCFO = 'C00001'

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO WHERE CODCFO = 'C00002' )

WHERE CODCFO = 'C00002'

e assim sucessivamente para todos os clientes?

Ou há uma maneira de eu fazer uma relação direta?

Por exemplo relacionar a tabela da Base 1 com a tabela da Base 2 sem que eu tenha que digitar código à código, de maneira que dá pra fazer tudo de uma só vez.

Obrigado meu caro!

Abraços

Diego

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  110
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.391
  • Conteúdo/Dia:  0.21
  • Reputação:   17
  • Pontos/Conquistas:  8.047
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  47
  • Dispositivo:  Windows

Você consegue fazer isto usando um cursor

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  15
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Meus caros!

Após fazer alguns testes e quebrar um pouco a cabeça consegui fazer a alteração, de registros iguais para bancos de dados diferentes.

Ela ficou da seguinte maneira:

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO

WHERE CODCFO = FCFO.CODCFO)

WHERE CODCFO >= 'C00001'

Muito obrigado pela ajuda de todos.

Abraços

Diego

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Você consegue fazer isto usando um cursor

Markitu, até dá pra fazer via cursor, mas não precisa... como está abaixo já consegue.

Meus caros!

Após fazer alguns testes e quebrar um pouco a cabeça consegui fazer a alteração, de registros iguais para bancos de dados diferentes.

Ela ficou da seguinte maneira:

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO

WHERE CODCFO = FCFO.CODCFO)

WHERE CODCFO >= 'C00001'

Muito obrigado pela ajuda de todos

Diego, como vc fez até dá certo, mas, se vc tiver cadastros em mais de uma coligada, ou mesmo códigos iguais para os clientes, ora global ora não, derá problema. O correto é relacionar sempre pelo CODCOLIGADA tambem. Ah, e não precisava colocar a última linha que colocou, do Where CODCFO >= 'C00001'.

Ficaria assim:

UPDATE FCFO

SET RUA = (SELECT RUA FROM CORPOREDORA.DBO.FCFO

WHERE CODCFO = FCFO.CODCFO and CODCOLIGADA = FCFO.CODCOLIGADA)

  • Gostei 1
Link para comentar
Compartilhar em outros sites

  • 2 anos depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  24
  • Conteúdo/Dia:  0.00
  • Reputação:   1
  • Pontos/Conquistas:  152
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  57
  • Dispositivo:  Windows

Valeu pelo post.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  13
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  167
  • Conteúdo/Dia:  0.03
  • Reputação:   1
  • Pontos/Conquistas:  1.088
  • Conteúdo Resolvido:  0
  • Dias Ganho:  3
  • Status:  Offline
  • Idade:  45
  • Dispositivo:  Windows

Parabéns pelo post!!! Precisei de algo parecido e funcionou.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.