qulaitks Ответов: 1

Sql триггер для обновления второго поля таблицы


Я хочу создать триггер после обновления , у меня есть 2 таблицы Buytable и Selltable оба имеют одинаковые поля (id,transId,символ,кол-во,дата,transtype), я хочу обновить buytable transtype каждый раз, когда я обновить только selltable transtype которая (истина, ложь) только в той же transid на стол

я попробовал нижеприведенную треску, но она не работает, пожалуйста, помогите

Alter trigger [dbo].[transtypr_Update] на [dbo].[Продается]

Что я уже пробовал:

Create trigger [dbo].[transtypr_Update] on [dbo].[SellTable] 
 
AFTER UPDATE

AS


IF UPDATE(TransType)

begin


declare @TransType as Bit
declare @Buy_TransID as Int
declare @Sell_TransID as Int
declare @Type as Bit



select @TransType= TransType from BuyTable
select @Sell_TransID= TransID from SellTable
select @Buy_TransID= TransID from BuyTable
select @Type= TransType from SellTable



UPDATE [dbo].[BuyTable]

set [TransType]  = @Type 
where @Buy_TransID=@Sell_TransID
end

OriginalGriff

"Это не работает" - одно из самых бесполезных описаний проблемы, которое мы получаем: оно абсолютно ничего не говорит нам о проблеме. Мы не знаем, получаете ли вы сообщение об ошибке, или неправильные данные, или даже что этот код успешно компилируется!
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Итак, расскажите нам, что происходит, когда вы запускаете этот код, что вы ожидали, как вы проверили, что произошло. Помогите нам помочь вам!
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

1 Ответов

Рейтинг:
1

Wendelius

Для извлечения обновленных данных необходимо использовать вставленную таблицу. Таким образом, триггер будет выглядеть примерно так

CREATE TRIGGER [dbo].[transtypr_Update] on [dbo].[SellTable] 
AFTER UPDATE AS
BEGIN
   IF UPDATE(TransType) BEGIN
      UPDATE BuyTable
      SET    BuyTable.TransType = inserted.TransType
      FROM   BuyTable
      INNER JOIN Inserted ON BuyTable.TransID = Inserted.TransID
   END
END


qulaitks

Спасибо, что это работает .

Wendelius

Пожалуйста.