none
Fazer update só em algumas colunas RRS feed

  • Pergunta

  • Boas

    Preciso de criar uma rotina no sql onde me faça um update caso acha necessidade. Vou explicar:

    Na tabelaum tenho as seguintes colunas:

    Nome/Telemovel/Cidade

    João / 555555/São Paulo

    Na Tabeladois tenho as seguintes colunas:

    Nome/Telemovel/Cidade

    João / 965/Baia

    O que preciso é de criar um código que detecte que o joão alterou o numero de telemóvel e faça a respectiva alteração. A alteração só deve ser feita no campo telemóvel. O campo cidade quero que permaneça igual ao antigo.

    O resultado deste código iriam ser estes:

    Na Tabeladois

    Nome/Telemovel/Cidade

    João / 555555/Baia

    Tem como fazer isso?

    Nota:Os campos na minha tabela estão todos em nvarchar.

    Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com

    quinta-feira, 26 de abril de 2012 16:49

Respostas

Todas as Respostas

  • olá jonas

    veja se isso te ajuda

    Update tabelaum 
    set telemovel = b.telemovel
    from tabelaum a
    inner join tabeladois  b
    on a.nome = b.nome 
    and a.telemovel <> b.telemovel
    


    Att.
    Lukas Baldan

    quinta-feira, 26 de abril de 2012 17:03
  • hey tão simples? Ainda não testei mas pelo que entendi é bem simples :)

    Cada vez mais fico admirado com o sql :)

    Sem querer abusar pedia o seguinte:

    A tabelaum é na verdade uma tabela de um ficheiro access (mdb). Visto o código de comparação e update ser tão pequeno existe possibilidade de fazer está comparação/update entre a tabela do access e a tabela do sql server?

    Obrigado por tudo :)


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com

    quinta-feira, 26 de abril de 2012 21:13
  • Sim,

    você vai ter que criar um linked server com o arquivo mdb,

    depois é só acessa-lo, fazendo o update como descrito acima,

    segue alguns links para te ajudar com o linked server

    Configuring a Linked Microsoft Access Server on SQL 2005 Server

    Linked Server From SQL 2008 R2 (32 or 64 bit) TO Access 2007 mdb


    Att.
    Lukas Baldan


    sexta-feira, 27 de abril de 2012 11:48
  • boas

    existe hipótese de fazer a atualização da tabela com os dados do mdb via vb.net?

    A ideia seria escolher o ficheiro e tabela mdb via comobox. Essa parte eu consigo fazer.

    Ao escolher o ficheiro e a tabela existem dois processos muito importantes a fazer. 

    Então cá vamos:

    O user escolhe o ficheiro e a tabela. O comando sql verifica se existe dados dessa tabela na minha tabela de sql server.

    Se existe atualiza (conforme condição de cima) senão existe nenhum dados então copia tudo.

    Terei que criar um comando sql que faça estes dois passos.

    Como faço isso?

    O processo que me passou é boa, mas se fosse só um mdb. No meu caso são 3 mdb pelo menos.

    Valeu

    Visual Basic 2008 Express Edition SQL Server Management Studio



    domingo, 29 de abril de 2012 21:33
  • Lukas encerrei este tópico e abri um novo. se poder passe lá :)

    obrigado pela dica, value


    Visual Basic 2008 Express Edition SQL Server Management Studio

    segunda-feira, 30 de abril de 2012 08:48