powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать тригер
7 сообщений из 7, страница 1 из 1
Помогите написать тригер
    #32059309
SOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOS
Гость
Помогите написать тригер.

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

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

Андрей.
...
Рейтинг: 0 / 0
Помогите написать тригер
    #32059322
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
Помогите написать тригер
    #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
Помогите написать тригер
    #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
Помогите написать тригер
    #32059396
Oers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не нужно разве в триггере на таблице 1 написать в начале условие

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

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

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


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