|
|
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
Помогите написать тригер. Нужно чтобы при изменении значения в одном из полей таблицы запускался тригер, изменяющий значение в другой таблице. Заранее благодарен. Андрей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 16:20:45 |
|
||
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
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 Не забудьте, что записи не только добавляются но и удаляются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 16:39:34 |
|
||
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
интересно а так сработает (это если поставить проверку на изменение конкретного поля [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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 17:21:32 |
|
||
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
Это сработает только в том случае, если апдейт будет изменять одну запись. Если операция затронет много записей, то в таблицах inserted и deleted будет содержаться не одна запись. Следует использовать что-то вроде If exists(Select * from inserted i inner join deleted d on i.PK=d.PK where i.Value<>d.Value) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 17:34:42 |
|
||
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
А не нужно разве в триггере на таблице 1 написать в начале условие IF UPDATE (поле таблицы 1) begin .............................. действия, которые нужно совершить для изменения значения в таблице2 .............................. end для того, чтобы действия совершались лишь при update нужного поля таблицы 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 18:16:21 |
|
||
|
Помогите написать тригер
|
|||
|---|---|---|---|
|
#18+
To Oers Этот If сработает в тех случаях, когда поле будет перечислено в Set - даже, если фактически его значение не изменится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 18:32:02 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3395&tid=1819514]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 295ms |

| 0 / 0 |
