SQL Server:延迟触发

时间:2018-07-03 10:58:20

标签: sql-server triggers database-trigger

我有一个客户计算机,该计算机在午夜将数据插入到SQL Server数据库中。在SQL Server中,有触发器可在插入时删除旧记录。

问题是,客户执行了一堆单次插入命令(而不是使用批量插入),实际上是数百条。我无法控制。我要做的是记录上一次触发时间,如果datediff少于一小时,则不执行任何操作。我读过在触发器中使用WAITFOR是一个坏主意,因为它会锁定表直到触发器执行完成。还有其他办法吗?干杯。

BEGIN
    SET NOCOUNT ON;

    IF DATEDIFF(HOUR, (SELECT TOP 1 TimeStamp 
                       FROM HouseKeepingStats 
                       ORDER BY TimeStamp DESC), GETDATE()) > 1 
    BEGIN
        EXEC HouseKeeping;
    END
END

0 个答案:

没有答案