Здравствуйте, VintVV, Вы писали:
VVV>Задача кажется довольно простая, но я ни как не могу сделать....
VVV>Есть таблица в БД, у нее один PK = ID, в тригере на befor insert в эту таблицу поставлен
VVV>автоинкремент поля ID. Триггер:
VVV>CREATE OR ALTER TRIGGER MODULE_BI FOR MODULE
VVV>ACTIVE BEFORE INSERT POSITION 0
VVV>AS
VVV>BEGIN
VVV> IF (NEW.ID_MODULE IS NULL) THEN
VVV> NEW.ID_MODULE = GEN_ID(GEN_MODULE_ID,1);
VVV>END
VVV>Сделал маппинг таблицы в EF, вызываю статический метод ObjectContext для создания
VVV>данного объекта, а он зараза требует ID.... но как я узнаю текущее значение генератора
VVV>для определения этого уникального ID.
VVV>Можно было бы конечно взять максимальный ID из всего набора и для нового элемента увеличивать его,
VVV>но где гарантия что этот ID >= значению генератора, ведь вставлять может не только данная прога
VVV>ПОМОГИТЕ!
Если значения инкрементируются всеми прогами, которые пишут в таблицу, то можно завести отрицательное "магическое" число,
на которое и проверять в триггере.
Кроме того, если есть возможность, то может быть стоит сделать PK типа UNIQUEIDENTIFIER?
Когда кому-то придется менять структуру таблиц или мерждить несколько баз, то скажут спасибо.