Varios updates ao mesmo tempo

Firebird

10/08/2011

Boa Tarde
Gostaria de saber se tem como executar varios updates de uma unica vez no firebird 2.0 ou 2.1
a situação é a seguinte:
tenho a tabela TESTE com os seguintes campos:
nome      funcao         idade         sexo        salario
jose         null              null            null          null
fred         null              null            null          null
joao         null              null            null          null


gostaria de executar um update com as seguintes informaçoes:
update TESTE set funcao= 'chefe ' , idade= '30 ' , sexo= 'M' , salario= '2000' where nome= 'jose ';
update TESTE set funcao= 'estagiario ' , idade= '18 ' , sexo= 'M' , salario= '800' where nome= 'fred ';
update TESTE set funcao= 'auxiliar' , idade= '22 ' , sexo= 'M' , salario= '1200' where nome= 'joao ';

quando mando executar me retorna o seguinte erro:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 1.
update.

alguem ae poderia me dar essa força

att
Dalveson Sanches

Dalveson Sanches

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

10/08/2011

Ao contrário das ferramentas de gerenciamento do BD, os SQLs devem ser executados separadamente.

Espero ter colaborado.
GOSTEI 0
Dalveson Sanches

Dalveson Sanches

10/08/2011

Ao contrário das ferramentas de gerenciamento do BD, os SQLs devem ser executados separadamente.

Espero ter colaborado.


entao com isso vc quer dizer que é possivel executar apenas um por um os updates e nao em conjunto
GOSTEI 0
Wilson Junior

Wilson Junior

10/08/2011

Sim. No teu exemplo, serão 3 execuções de SQLs.

Espero ter colaborado.
GOSTEI 0
Dalveson Sanches

Dalveson Sanches

10/08/2011

Sim. No teu exemplo, serão 3 execuções de SQLs.

Espero ter colaborado.


hum ok
mais existiria alguma outra maneira de fazer esse update sem que fosse um a um, pois o banco ao qual tenho que fazer esse update tem uns 30 mil registros, um a um vai ser duro
GOSTEI 0
Wilson Junior

Wilson Junior

10/08/2011

Tente utilizar IN ao invés de igual assim:
update TESTE set funcao= 'chefe ' , idade= '30 ' , sexo= 'M' , salario= '2000' where nome IN ('jose', 'Pedro', 'Maria');


Espero ter colaborado.
GOSTEI 0
Mauro Magalhães

Mauro Magalhães

10/08/2011

Tente fazer como o exemplo

UPDATE
Table1
SET
Field1 = Table2.Field1,
Field2 = Table2.Field2,
other columns...
FROM
Table2
WHERE
Table1.ID = Table2.ID
GOSTEI 0
Caique Alves

Caique Alves

10/08/2011

cara estou com o mesmo problema :/
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

10/08/2011

mais existiria alguma outra maneira de fazer esse update sem que fosse um a um, pois o banco ao qual tenho que fazer esse update tem uns 30 mil registros, um a um vai ser duro


qual é o problema em fazer um de cada vez?
de onde você obtém os valores com os quais vai atualizar os registros? em teoria, basta fazer um loop.


GOSTEI 0
Washington Roberto

Washington Roberto

10/08/2011

Boa Tarde
Gostaria de saber se tem como executar varios updates de uma unica vez no firebird 2.0 ou 2.1
a situação é a seguinte:
tenho a tabela TESTE com os seguintes campos:
nome      funcao         idade         sexo        salario
jose         null              null            null          null
fred         null              null            null          null
joao         null              null            null          null


gostaria de executar um update com as seguintes informaçoes:
update TESTE set funcao= 'chefe ' , idade= '30 ' , sexo= 'M' , salario= '2000' where nome= 'jose ';
update TESTE set funcao= 'estagiario ' , idade= '18 ' , sexo= 'M' , salario= '800' where nome= 'fred ';
update TESTE set funcao= 'auxiliar' , idade= '22 ' , sexo= 'M' , salario= '1200' where nome= 'joao ';

quando mando executar me retorna o seguinte erro:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 1.
update.

alguem ae poderia me dar essa força

att





Coloca ponto e virgula ( ; )no final de cada um UPDATE já resolve ---- Espero ter ajudado
GOSTEI 0
POSTAR