Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 trigger on update  [new]
Platium
Member

Откуда:
Сообщений: 45
Добрый вечер!
Помогите пожалуйста, нужно написать триггер, каторий выполнял бы такую ​​функцию

есть таблица (ID, Name, DateT)
например, 1 name1 2012-09-10 19:27:00.000

нужно, чтобы при изменении ID или Name менялась дата автоматически

Спасибо!
10 сен 12, 20:30    [13142518]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31785
Platium
Помогите пожалуйста, нужно написать триггер
А что не получается, какой ваш вариант?
10 сен 12, 21:08    [13142653]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37155
Тогда уж
update t
set [date] = getdate()
from Inserted i
      inner join таблица t on t.ID = i.ID
10 сен 12, 22:33    [13142890]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31785
Platium
Всем спасибо
Сделал тиким образом
абзац
10 сен 12, 23:06    [13143023]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Platium
Всем спасибо
Все я думаю дружно открестятся от того что помогли написать сей бред.
11 сен 12, 00:49    [13143283]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
Mind
Platium
Всем спасибо
Все я думаю дружно открестятся от того что помогли написать сей бред.
Хорошо, что я не участвовал!
11 сен 12, 09:06    [13143579]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
Гавриленко Сергей Алексеевич
Тогда уж
update t
set [date] = getdate()
from Inserted i
      inner join таблица t on t.ID = i.ID
Тогда уж так:
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]     Ответить | Цитировать Сообщить модератору
 Re: trigger on update  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
iap
Гавриленко Сергей Алексеевич
Тогда уж
update t
set [date] = getdate()
from Inserted i
      inner join таблица t on t.ID = i.ID
Тогда уж так:
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])
Чушь написал. В триггере AFTER UPDATE inserted = таблица по всем полям.
Сравнивать надо с deleted, да вот беда: ТС предполагает, что ID может меняться!
Так что deleted и inserted никак не связать.
11 сен 12, 09:46    [13143771]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить