Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.27;
Скачать: CL | DM;

Вниз

как этот FB триггер перевести на MS SQL   Найти похожие ветки 

 
DSKalugin ©   (2008-11-26 17:39) [0]

портирую базу firebird 1.5.5 на MS SQL 2005, с которым я плохо знаком

как этот триггер реализовать в MS?

CREATE OR ALTER TRIGGER TR_GRAPH_DETAIL_BI FOR GRAPH_DETAIL
ACTIVE BEFORE INSERT POSITION 0
as
begin
 select coalesce(max(ord_num), 0)+1 from GRAPH_DETAIL
 where graph_id=new.graph_id
 into new.ord_num;
end

генератор для ord_num не подходит


 
clickmaker ©   (2008-11-26 17:42) [1]

INSTEAD OF INSERT, наверно

только почему не использовать identity?


 
Ega23 ©   (2008-11-26 17:54) [2]

ты graph_id и ord_num синхронизовать что-ли хочешь?
А зачем, если не секрет?


 
sniknik ©   (2008-11-26 17:57) [3]

> INSTEAD OF INSERT, наверно
в общем случае не получится, если только добавлять все всегда только по одной записи. в MSSQL тригер срабатывает один на групповую вставку, а не для каждой как в IB/FB.

> только почему не использовать identity?
однозначно!


 
clickmaker ©   (2008-11-26 17:59) [4]

если идентити не подходит из-за возможной дырявости, то как-то так
CREATE TRIGGER TR_GRAPH_DETAIL_BI ON GRAPH_DETAIL
AFTER INSERT
as
begin
declare @new_num int
select @new_num = isnull(max(ord_num), 0)+1 from GRAPH_DETAIL
where graph_id=inserted.graph_id

update inserted set ord_num = @new_num
end


 
DSKalugin ©   (2008-11-26 18:05) [5]

> только почему не использовать identity?
последовательность должна быть сплошной, не дырявой и порядок строк имеет значение (его вручную должны будут менять/перенумеровывать)


 
DSKalugin ©   (2008-11-26 18:08) [6]

похоже триггер тут вообще не поможет, придется перенумеровывать программно табличку в соответствии с тем, как  юзер выстроит порядок строк
вопрос снят



Страницы: 1 вся ветка

Текущий архив: 2009.09.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1248667367
ganda
2009-07-27 08:02
2009.09.27
убить программу, если выполнение процедуры затянулось


15-1248726602
Юрий
2009-07-28 00:30
2009.09.27
С днем рождения ! 28 июля 2009 вторник


3-1227637609
Morpheus
2008-11-25 21:26
2009.09.27
Копирование таблицы с SQL-сервера в .dbf


15-1248550614
TStas
2009-07-25 23:36
2009.09.27
Как вставить у страниц номера в 2007 Ворде?


15-1248695199
Василий Жогарев
2009-07-27 15:46
2009.09.27
Выбор струйника формата А3 подсоветуйте