Re: Firebird SQL
- From: "Georg Ledermann" <ledermann@xxxxxx>
- Date: Tue, 21 Feb 2006 12:45:23 +0100
"Robert Wachtel" <rwachtel@xxxxxx> schrieb im Newsbeitrag
news:4609rtF8r3i8U1@xxxxxxxxxxxxxxxxx
Im Zweifelsfalle könnte man sich ja mit einer Stored Procedure
helfen:
CREATE PROCEDURE SET_GENERATOR_TO_MAX_ID
AS
DECLARE VARIABLE MAXID INTEGER;
BEGIN
SELECT MAX(ID) FROM my_table
INTO :MAXID;
SET GENERATOR GEN_DS_ID TO :MAXID + 1;
END
Mit EXECUTE STATEMENT geht's sogar noch allgemeiner:
====
CREATE PROCEDURE SET_GENERATOR_TO_MAX_ID (
TableName VARCHAR(32),
IDName VARCHAR(32),
GeneratorName VARCHAR(32))
AS
DECLARE VARIABLE MaxID INTEGER;
BEGIN
EXECUTE STATEMENT 'SELECT MAX(' || IDName || ') FROM ' || TableName
INTO :MaxID;
EXECUTE STATEMENT 'SET GENERATOR ' || GeneratorName || ' TO ' ||
cast(:MaxID + 1 AS CHAR(32));
END
====
Schöne Grüße
Georg
.
- Follow-Ups:
- Re: Firebird SQL
- From: Marian Aldenhövel
- Re: Firebird SQL
- References:
- Firebird SQL
- From: Marian Aldenhövel
- Re: Firebird SQL
- From: Robert Wachtel
- Firebird SQL
- Prev by Date: Re: Firebird SQL
- Next by Date: Aktuellen Generatorwert eines Datensatz abfragen
- Previous by thread: Re: Firebird SQL
- Next by thread: Re: Firebird SQL
- Index(es):