Я конвертирую базу данных Firebird в MS SQl Server. Поскольку есть несколько приложений, обращающихся к базе данных, я действительно хочу, чтобы MS SQL Server действовал как можно проще, как в базе данных Firebird.Триггер Firebird, переведенный на MS SQL Server
В Firebird он объявлен как
CREATE TRIGGER CUSTOMER_BI FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.cust_id is null) then
new.cust_id = gen_id(gen_cust_id,1);
end
Так у меня есть последовательность (генератор в FB) называется gen_cust_id и моя главная цель состоит в том, чтобы заполнить поле cust_id с nextvalue из последовательности.
Я очень хорошо знаю, что SQL Server предлагает мне поле autoinc. На самом деле это не то, что я ищу здесь, поскольку приложения (приложения) для внешнего интерфейса делают это различными способами. Некоторые из них сначала получают порядковый номер и могут или не могут совершать запись. В этом случае я просто отбрасываю сгенерированный порядковый номер.
Любая помощь очень ценится. Заранее спасибо
Я понимаю, что я только ответил часть вашего вопроса. Что означает «ПОЗИЦИЯ 0» в синтаксисе firebird? Это похоже на триггер SQL, за исключением этой части. – CDC
Позиция @CCC (что необязательно) определяет порядок выполнения, если у вас есть несколько триггеров. –