UPDATE FIREBIRD EM MASSA, VARIOS SKU.

Firebird

26/10/2023

Boa tarde Pessoal, precisando de ajuda para entender onde estou errando.

preciso fazer um update em massa para varios sku, extamente 2000sku.

UPDATE EST004 SET PRECOPROMO =''''399.9'''', PRECOPROMO_ATACADO = ''''399.9'''', dtvalidadeinicial = ''''26.10.2023'''',dtvalidade =''''30.11.2023'''',prodpromo = ''''S'''' WHERE CODPRODUTO = ''''014843'''';
UPDATE EST004 SET PRECOPROMO =''''275.4'''', PRECOPROMO_ATACADO = ''''275.4'''', dtvalidadeinicial = ''''26.10.2023'''',dtvalidade =''''30.11.2023'''',prodpromo = ''''S'''' WHERE CODPRODUTO = ''''015183'''';
UPDATE EST004 SET PRECOPROMO =''''274.5'''', PRECOPROMO_ATACADO = ''''274.5'''', dtvalidadeinicial = ''''26.10.2023'''',dtvalidade =''''30.11.2023'''',prodpromo = ''''S'''' WHERE CODPRODUTO = ''''015170'''';



segue exemplo de como montei a query, mas está aparendo erro nos teste quando tento executar mais de um update de uma vez. Quando executado somente 1 update a alteração ocorre.
Walter Oliveira

Walter Oliveira

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

26/10/2023

Com base na documentação https://firebirdsql.org/refdocs/langrefupd20-execblock.html, você pode executar algo do tipo:

execute block as
begin
  UPDATE EST004 SET PRECOPROMO =399.9, PRECOPROMO_ATACADO = 399.9, dtvalidadeinicial = ''26.10.2023'',dtvalidade =''30.11.2023'',prodpromo = ''S'' WHERE CODPRODUTO = ''014843'';
  UPDATE EST004 SET PRECOPROMO =275.4, PRECOPROMO_ATACADO = 275.4, dtvalidadeinicial = ''26.10.2023'',dtvalidade =''30.11.2023'',prodpromo = ''S'' WHERE CODPRODUTO = ''015183'';
  UPDATE EST004 SET PRECOPROMO =274.5, PRECOPROMO_ATACADO = 274.5, dtvalidadeinicial = ''26.10.2023'',dtvalidade =''30.11.2023'',prodpromo = ''S'' WHERE CODPRODUTO = ''015170'';
end

GOSTEI 0
POSTAR