Как использовать триггер для обновления другой таблицы
tblBudget(butID, butName, butAmount,IncurredTD_Amount)
tblInvoice(ID, ItemName,InvoiceAmount,butID)
вот мои две таблицы, когда я обновляю таблицу счетов-фактур, у меня будет триггер при любой вставке или обновлении счета-фактуры, который уменьшит бюджетную сумму intblbutget, а также увеличит Incretdamount автоматически, используя butID в качестве ссылки в tblInvoice(butAmount-InvoiceAmount и Incurreddamount+INvoiceAmount)..... возможно ли это? каковы проблемы с производительностью, если они вообще есть? как это можно сделать ... заранее спасибо на миллион
Что я уже пробовал:
AFTER INSERT, UPDATE AS BEGIN SET NOCOUNT ON; DECLARE @Inv_Amount float,@Bud_ID int SELECT @Bud_ID = INSERTED.Bud_ID FROM INSERTED INSERT INTO dbo.tblBudget(Bud_Amount,IncurTD_Amount,ID) IncurTD_Amount VALUES(Bud_Amount - @Inv_Amount, IncurTD_Amount + @Inv_Amount,'Inserted') ENDно я получаю ошибку:
0x01AA
Кажется, возникла проблема с отправкой сообщения об ошибке, я вижу только "но я получаю ошибку:". имеет смысл добавить сообщение об ошибке ;)
Richard Deeming
Вставки, обновления и удаления могут затрагивать более одной строки. Когда они это делают, триггер срабатывает один раз для каждого оператора, и inserted
и deleted
виртуальные таблицы будут содержать несколько строк. Ваш триггер должен использовать обработку на основе набора, чтобы справиться с этим.
Кроме того, ваш INSERT
утверждение не является действительным. Я не уверен, что это опечатка в вашем вопросе?