[firebase-br] Generetor

Tecnobyte Informática temp2 em tecnobyte.com.br
Sex Dez 14 09:50:36 -03 2012


Isto deve te ajudar:

--- Início do SQL ---

SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_UpdateSequences AS
DECLARE VARIABLE TableName VARCHAR(50);
DECLARE VARIABLE FieldName VARCHAR(50);
DECLARE VARIABLE SequenceName VARCHAR(50);
DECLARE VARIABLE MaxValue BIGINT;
DECLARE VARIABLE SQLCommand VARCHAR(200);
BEGIN
  FOR
    SELECT
      TRIM(R.RDB$RELATION_NAME),
      TRIM(F.RDB$FIELD_NAME),
      TRIM(G.RDB$GENERATOR_NAME)
    FROM RDB$RELATIONS AS R
    JOIN RDB$RELATION_FIELDS AS F ON F.RDB$RELATION_NAME = 
R.RDB$RELATION_NAME
    JOIN RDB$GENERATORS AS G ON G.RDB$GENERATOR_NAME =
      'SQ_' || TRIM(R.RDB$RELATION_NAME) || '_' || TRIM(F.RDB$FIELD_NAME)
    INTO :TableName, :FieldName, :SequenceName
  DO
  BEGIN
    SQLCommand = 'SELECT MAX(' || FieldName || ') FROM ' || TableName;
    EXECUTE STATEMENT SQLCommand INTO MaxValue;
    SQLCommand = 'ALTER SEQUENCE ' || SequenceName || ' RESTART WITH ' || 
COALESCE(MaxValue, 0);
    EXECUTE STATEMENT SQLCommand;
  END
END^

SET TERM ; ^

EXECUTE PROCEDURE SP_UpdateSequences;

--- Fim do SQL ---

Neste exemplo todod generatores (sequendes) possui nomes neste formato:

SQ_NomeDaTabela_NomeDoCampo

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

-----Mensagem Original----- 
From: Guto & Michellane Araújo
Sent: Thursday, December 13, 2012 7:01 PM
To: FireBase
Subject: [firebase-br] Generetor

Boa noite,

Queria um comando para atualizar o Generator de todas as tabelas do db

de acordo com o numero de registros.

Exemplo:

A tabela produtos tem 10 registros porem seu generetor esta 15, quero que
no próximo incremento seja 11 





Mais detalhes sobre a lista de discussão lista