0
DECLARE @IsDeleted AS BIT = 0;

    SELECT @IsDeleted = IsDeleted from Updated

    IF @IsDeleted=1 
    BEGIN
    UPDATE Reviews
    SET IsDeleted = @IsDeleted
    WHERE CompanyID = 1
END;

Reviews如果列更新为 1,我想更新Company IsDeleted。如何确定更新值为 ' 1 '

是错误SELECT @IsDeleted = IsDeleted from Updated

4

1 回答 1

4

触发器中可用的伪表被插入或删除,没有更新的表。

既然您陈述了 t-sql,您应该了解在 SQL Server 中,触发器对批处理而不是单行进行操作。此触发器需要完全重写以处理多个记录更新。不要对已插入或已删除表的触发器中的标量变量的值进行任何设置。改为加入它们(当然,当您更新时,永远不要在不排除当前值与新值匹配的任何记录的情况下编写更新语句。当只有 2 条记录发生变化时更新一百万条记录是愚蠢的。性能是至关重要的触发器,所以更重要的是不要更新不需要更新的东西。

于 2013-05-29T17:41:05.703 回答