Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
ВнизИзменение записи в тригере Найти похожие ветки
← →
MVova (2002-01-21 12:04) [0]Всем привет.
Тригер INSERT как изменить запись которая вставляется?
Делаю так
CREATE TRIGGER Tab1_INSERT ON Tab1 FOR INSERT AS BEGIN
DECLARE @DateEdit DateTime
declare cur cursor local for select DateEdit from inserted
open cur
fetch cur into@DateEdit
while @@FETCH_STATUS = 0 BEGIN
SELECT @DateEdit = 1000
fetch cur into @DateEdit
end
close cur
deallocate cur
end
но поле DateEdit равно 0 :-((
← →
TSV (2002-01-21 12:26) [1]
CREATE TRIGGER TAB1_INS ON TAB1 FOR INSERT AS
UPDATE TAB1
SET T.DateEdit = GETDATE()
FROM TAB1 T, INSERTED I
WHERE T.KEY_FIELD = I.KEY_FIELD
Но можно сделать проще: присвоить столбцу DEFAULT GETDATE().
Удачи.
← →
MVova (2002-01-21 12:46) [2]> TSV Но можно сделать проще: присвоить столбцу DEFAULT GETDATE().
Пробовал значения поля после вставки Null :((
У меня SQL 7.0, SP 3
← →
MVova (2002-01-21 12:48) [3]> TSV DEFAULT GETDATE().
Сработало, а неработает когда я запись вставлял в EM
← →
TSV (2002-01-21 12:59) [4]Может у тебя поле допускает вставку null-значений? Если да, то убери это.
← →
TSV (2002-01-21 13:04) [5]То есть, если триггер, то поле - nullable, если default-значение, то поле - not null.
← →
MVova (2002-01-21 13:18) [6]А как быть с тригером UPDATE надо вставить даду изменения записи.
Если сделать UPDATE из тригера UPDATE то он не зациклится?
← →
Delirium (2002-01-21 13:27) [7]Кусок рабочего триггера:
UPDATE r_Names SET dModiDataTime = GETDATE() WHERE id_Name IN (select id_Name FROM Deleted)
← →
TSV (2002-01-21 14:31) [8]> MVova
А для этого существуют параметры Recursive triggers на уровне БД и nested triggers на уровне сервера.
← →
handra (2002-01-22 10:51) [9]если надо установить дату изменения, то используй
COLUMNS_UPDATED() - см. хелп
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c