每当将记录插入到我的数据库中时,就会触发触发器,如果数据库上满足条件,该触发器将执行存储过程以发送电子邮件警报。如果在一定时间内数据库中存在多个记录,则需要执行该过程(如果在同一IP和登录类型的1分钟内存在5条记录)
IF (SELECT IP, COUNT(*) AS Counted
FROM LOGS
AND Logs.TYPE = 'Visitor'
HAVING Counted >= 5
AND IP > 1
AND ACCESSEDTIME > DATEADD(minute, -1, GetDate())) > 0
BEGIN
-- my stored procedure
END发布于 2019-11-22 17:09:39
我想可能是这样的,但在你的例子中,不太清楚.
IF exists (Select ip, count(*) as counted from logs
where logs.type='Visitor' and
ACCESSEDTIME > DATEADD(minute, -1, GetDate())
Group by ip having count (*) >= 5)然后你可以每分钟执行这个测试,但是它不是很好。另外,您可以使用分钟作为Group by子句的术语进行测试,从访问时间提取它(这取决于您的产品)。
发布于 2019-11-22 17:14:27
请参阅下面的查询。细节不太清楚,所以你可能需要做一些调整。
IF exists (SELECT IP,
COUNT(ip) AS Counted
FROM LOGS
where Logs.TYPE = 'Visitor'
group by ip
HAVING COUNT(ip) >= 5
AND IP > 1 AND DATEDIFF(MINUTE, accessedtime,
getdate())) =1
BEGIN
-- my stored procedure
ENDhttps://stackoverflow.com/questions/58998529
复制相似问题