Я новичок в SQL Server, и я пытаюсь создать простой триггер обновления, который записывает строку в промежуточную таблицу всякий раз, когда столбец ceu_amount обновляется с нуля до любого числа больше чем ноль.SQL Server INSERT в ПОСЛЕ ОБНОВЛЕНИЯ Триггер
От использования инструкций PRINT я знаю, что переменные содержат правильные значения для выполнения инструкции INSERT, но строки не вставлены.
Вы можете помочь?
CREATE TRIGGER [dbo].[TRG_Product_Function_Modified] ON [dbo].[Product_Function]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
--
-- Variable definitions
--
DECLARE @product_code_new as varchar(31)
DECLARE @product_code_old as varchar(31)
--
-- Check if the staging table needs to be updated.
--
SELECT @product_code_new = product_code FROM Inserted where ISNULL(ceu_amount,0) > 0;
SELECT @product_code_old = product_code FROM Deleted where ISNULL(ceu_amount,0) = 0;
IF @product_code_new IS NOT NULL
AND @product_code_old IS NOT NULL
INSERT INTO Product_Function_Staging VALUES (@product_code_new,CURRENT_TIMESTAMP);
END;
Я предлагаю редактировать это так, чтобы он ссылался на таблицы и столбцы OPs. Кроме того, 'if update' не заботится о значении обновления, только то, что столбец был установлен, поэтому я не думаю, что это будет работать в любом случае. –