[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