SR> Заведи таблицу с номерами для разных получателей и типов документов:
SR> CREATE TABLE DOC_NUM(
SR> TO_ID BIGINT NOT NULL,
SR> TYPE_ID BIGINT NOT NULL,
SR> MAX_DOC_NUM INT NOT NULL);
SR> ALTER TABLE DOC_NUM ADD CONSTRAINT PK_DOC_NUM PRIMARY KEY (TO_ID, TYPE_ID);
SR> В триггере на BI что то типа:
SR> ...
SR> IF (EXISTS(SELECT 1 FROM DOC_NUM WHERE TO_ID = NEW.TO_ID AND TYPE_ID =
SR> NEW.TYPE.ID)) THEN
SR> UPDATE DOC_NUM SET MAX_DOC_NUM = MAX_DOC_NUM + 1 WHERE TO_ID =
SR> NEW.TO_ID AND TYPE_ID = NEW.TYPE.ID;
SR> ELSE
SR> INSERT INTO DOC_NUM(TO_ID, TYPE_ID, MAX_DOC_NUM) VALUES (NEW.TO_ID,
SR> NEW.TYPE_ID, 1);
SR> SELECT MAX_DOC_NUM FROM DOC_NUM WHERE TO_ID = NEW.TO_ID AND TYPE_ID =
SR> NEW.TYPE.ID INTO NEW.NOM;
SR> И пиши в коротких R/C транзакциях. В случае облома - sleep(100) и пробуй
SR> еще.
Чёй-то я не понял ... Помоему тут можно наткнутся на 2 одинаковых
номера ... надо подумать ... Но всё равно спасибо ...
С уважением,
Константин Григорьевич.
===============
Двоечник на любое - Надо! отвечает - Зачем?