Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать тригер / 7 сообщений из 7, страница 1 из 1
17.10.2002, 16:20:45
    #32059309
SOS
SOS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
Помогите написать тригер.

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

Заранее благодарен.

Андрей.
...
Рейтинг: 0 / 0
17.10.2002, 16:39:34
    #32059322
vap
vap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
CREATE TRIGGER Table_insert ON Table FOR INSERT
AS

DECLARE @sum MONEY
SELECT @sum = SUM(Amonut) FROM inserted

UPDATE Table2 SET BalanceLast = @BalanceLast + @sum WHERE CustomerId IN (SELECT CustomerId FROM inserted)

RETURN

Не забудьте, что записи не только добавляются но и удаляются.
...
Рейтинг: 0 / 0
17.10.2002, 17:21:32
    #32059353
Wicky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
интересно а так сработает (это если поставить проверку на изменение конкретного поля [Field])
CREATE TRIGGER updTable_MyTable2
ON dbo.MyTable
FOR UPDATE
AS

DECLARE @OldValue int, @NewValue int, @Param int

SET NOCOUNT ON

SELECT @OldValue = Value FROM deleted
SELECT @NewValue = Value FROM inserted

IF @OldValue <> @NewValue

BEGIN
UPDATE ПроданоЗаМесяц SET ПроданоЗаМесяц.[Field] = ПроданоЗаМесяц.[Field] + @Param
END
...
Рейтинг: 0 / 0
17.10.2002, 17:34:42
    #32059367
Александр Степанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
Это сработает только в том случае, если апдейт будет изменять одну запись. Если операция затронет много записей, то в таблицах inserted и deleted будет содержаться не одна запись.

Следует использовать что-то вроде
If exists(Select * from inserted i inner join deleted d on i.PK=d.PK where i.Value<>d.Value)
...
Рейтинг: 0 / 0
17.10.2002, 18:16:21
    #32059396
Oers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
А не нужно разве в триггере на таблице 1 написать в начале условие

IF UPDATE (поле таблицы 1)
begin
..............................
действия, которые нужно совершить для изменения значения в таблице2
..............................
end

для того, чтобы действия совершались лишь при update нужного поля таблицы 1?
...
Рейтинг: 0 / 0
17.10.2002, 18:32:02
    #32059402
Александр Степанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
To Oers

Этот If сработает в тех случаях, когда поле будет перечислено в Set - даже, если фактически его значение не изменится.
...
Рейтинг: 0 / 0
17.10.2002, 18:43:47
    #32059404
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать тригер
боже мой тригера то кривые какае :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать тригер / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]