我是新来的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表和列。另外,如果更新不关心更新的价值,只是列的设置,所以我不认为这将工作无论如何。 –