SQL Serverを初めて使用しており、ceu_amount列がゼロから任意の数値に更新されるたびにステージングテーブルに行を書き込む単純な更新トリガを構築しようとしていますゼロよりも。AFTER UPDATEトリガの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;
OPのテーブルとカラムを参照するように編集することをお勧めします。また、 'if update'は更新の価値を気にせず、列が設定されているだけなので、これはとにかく動作するとは思いません。 –