none
Update e Insert Juntos RRS feed

  • Pergunta

  • Olá Amigos,

    Desde cedo estou com uma duvida, assim resolvi perguntar.

    Tenho as seguintes tabelas e campos.

    Tabela1 - Id, Nome, Situacao, ativo
    Tabela2 - IdTabela1, Teste

    Gostaria de dar um update na Tabela1
    Ex: Update tabela1 set situacao = '1' where ativo = '0'

    Porém gostaria de dar um insert na Tabela2 quando Tabela1.id = Tabela2.IdTabela1

    Tem como?

    Desde já agradeço

    Fábio Freitas

    quinta-feira, 6 de maio de 2010 20:07

Respostas

  • Neste caso somente trigger ou vc controla pela aplicacao :(

    O script abaixo server para 2005 usando a clausula output(so para ajudar futuros colaboradores do forum com a mesma duvida)

    declare @tbOut as table(IdTabela1 int, situacao char(1))
    
    Update tabela1 set situacao = '1' output inserted.* into @tbOut where ativo = '0'
    
    insert into tabela1
    select idTabela1, situacao from @tbOut a inner join tabela1 b a.idTabela1 = a.idTabela1

    att.
    marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quinta-feira, 6 de maio de 2010 20:22
    Moderador

Todas as Respostas

  • Qual a versão do seu SQL?

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quinta-feira, 6 de maio de 2010 20:14
    Moderador
  • Marcelo,

    A versão é o SQL 2000.

    Obrigado

    quinta-feira, 6 de maio de 2010 20:17
  • Oi Fabio,

    Você quer dar um insert na tabela 2 sempre que ocorrer um update na tabela 1 e Tabela1.id = Tabela2.IdTabela1?

    É esse o problema?

    Se for, você pode criar uma trigger no update da tabela 1.


    Latino
    quinta-feira, 6 de maio de 2010 20:22
  • Neste caso somente trigger ou vc controla pela aplicacao :(

    O script abaixo server para 2005 usando a clausula output(so para ajudar futuros colaboradores do forum com a mesma duvida)

    declare @tbOut as table(IdTabela1 int, situacao char(1))
    
    Update tabela1 set situacao = '1' output inserted.* into @tbOut where ativo = '0'
    
    insert into tabela1
    select idTabela1, situacao from @tbOut a inner join tabela1 b a.idTabela1 = a.idTabela1

    att.
    marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quinta-feira, 6 de maio de 2010 20:22
    Moderador