Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Platium Member Откуда: Сообщений: 45 |
Добрый вечер! Помогите пожалуйста, нужно написать триггер, каторий выполнял бы такую функцию есть таблица (ID, Name, DateT) например, 1 name1 2012-09-10 19:27:00.000 нужно, чтобы при изменении ID или Name менялась дата автоматически Спасибо! |
10 сен 12, 20:30 [13142518] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
|
||
10 сен 12, 21:08 [13142653] Ответить | Цитировать Сообщить модератору |
Eduard Minasyan Member Откуда: Сообщений: 119 |
update таблица set [date] = getdate() from Inserted i inner join таблица t on t.ID = i.ID предпологаю ID первичный ключ |
10 сен 12, 22:29 [13142882] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
Тогда ужupdate t set [date] = getdate() from Inserted i inner join таблица t on t.ID = i.ID |
10 сен 12, 22:33 [13142890] Ответить | Цитировать Сообщить модератору |
Platium Member Откуда: Сообщений: 45 |
Всем спасибо Сделал тиким образом CREATE TRIGGER t5 ON dbo.Shop FOR UPDATE AS DECLARE @ID int, @name nvarchar(150) DECLARE CUR1 CURSOR FOR SELECT Shop_ID FROM inserted OPEN CUR1 FETCH NEXT FROM CUR1 INTO @ID WHILE @@FETCH_STATUS=0 BEGIN UPDATE Shop SET Shop_DataTime=SYSDATETIME() WHERE Shop_ID=@ID FETCH NEXT FROM CUR1 INTO @ID END CLOSE CUR1 DEALLOCATE CUR1 |
10 сен 12, 22:43 [13142928] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
|
||
10 сен 12, 23:06 [13143023] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||
11 сен 12, 00:49 [13143283] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
![]() |
||||
11 сен 12, 09:06 [13143579] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
update t set [date] = getdate() from Inserted i inner join таблица t on t.ID = i.ID where not exists(select i.[ID],i.[Name] intersect select t.[ID],t.[Name]) ![]() |
||
11 сен 12, 09:35 [13143681] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
Сравнивать надо с deleted, да вот беда: ТС предполагает, что ID может меняться! ![]() Так что deleted и inserted никак не связать. |
||||
11 сен 12, 09:46 [13143771] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |