需要在触发器,CASE,END-ELSE之间决定写入表和& DATEDIFF()

时间:2011-07-18 06:08:30

标签: sql sql-server tsql datediff

在这里忍受我。我使用了以下脚本: http://sqlfool.com/2008/11/replication-monitor/

我想测试是否在过去30分钟内从服务器输入了一个条目?

如果答案为否,则将该条目写入另一个表格,并可能提醒我们。

以下查询现在与日期时间字段'monitorDate'下服务器Test1的最后一个条目之间的分钟差异。

SELECT TOP 1 DATEDIFF (minute, (SELECT TOP 1 (SELECT MAX(monitorDate) 
    FROM dba_replicationMonitor)), GETDATE())
FROM MASTER.dbo.dba_replicationMonitor
WHERE publicationName = 'Test1'

我无法弄清楚怎么说'如果返回的数字大于5,则将serverName和monitorDate传递给另一个表。

任何指出方向的建议都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

难道你不能只是得出你的结果并在符合你的需要时插入它们吗?

INSERT INTO WHATEVERTABLE (serverfield, datefield)
SELECT result.server, result.date
FROM (YOURQUERY) result
WHERE result.yourresult > 5