Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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() - см. хелп




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.027 c
7-42887           aguliver              2001-11-06 06:52  2002.02.14  
Как обработать данные с микрофона в Real-Time


14-42839          Алексей1              2001-12-21 21:26  2002.02.14  
Текущая дата


3-42643           harismatik            2002-01-17 16:48  2002.02.14  
Добавление нового юзера и назначение ему прав доступа к базе данных INTERBASE


14-42867          fliz                  2001-12-25 18:21  2002.02.14  
Кто нибудь разгонял монитор с 14 до 17 ?


4-42896           _Dima                 2001-12-18 12:12  2002.02.14  
В Win98 работаю с COM портом - все OK, в Win2k та же прога глючит. Почему ?