I'm using (open source) Firebird which implements SQL 2003's functionality in this respect.
(From Google: see http://www.sigmod.org/record/issues/0403/E.JimAndrew-standard.pdf .. SIGMOD Record, Vol. 33, No. 1, March 2004 p124
<font face="Arial, sans-serif"><font size="4">Sequence Generators</font></font>
<font face="Times New Roman, serif"><font size="2">.. . or one can get SQL to generate unique values automatically. SQL:2003 provides a new feature, sequence generators, for this purpose.</font></font>
<font size="2"><font face="Courier New, serif">CREATE SEQUENCE PARTSEQ AS INTEGERSTART WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10000
NO CYCLE
</font></font>
(Marshall again)
<font face="Arial, sans-serif"><font size="2"><font face="Times New Roman, serif">A single call of "NEXT VALUE FOR PARTSEQ" gives you a unique value which can be then used multiple times to insert related records (the original question). Including "NEXT VALUE FOR PARTSEQ" in a command that operates against multiple records gives a different number for each record - I used this aspect in a script used to move data from a heritage table with multiple keys to one with a sequence no as primary key.</font></font></font>
SQL 2003 also implements auto-generation via "Identity Columns" (p125) but my need is program-driven so I prefer to retain control in the application code.