Sql 根据记录的条目是否存在更新列
我有一个表,每天晚上记录服务器状态信息。我引用该表,其中企业中的每台服务器的列表保存在另一个表中,并对该表运行一个查询,以检查该服务器名的条目是否在最近几个小时内包含在Maint表中。那部分很好用 Lookup table: --------------- serverID serverName isActive Maintenance Table: -------------- ServerID ServerName LastAttemptedDateTimeStamp --This part is working fine. 查找表: --------------- 服务器ID 服务器名 活跃的 维护表: -------------- 服务器ID 服务器名 LastAttemptedDateTimeStamp --这部分工作正常。 下面是我想添加的功能。我想每天更新表(覆盖所有旧信息),并为查找表中的每个条目创建记录。如果查找表中的服务器条目在过去24小时内存在于Maint表中,则在行中放入成功位(1),更新LastAttemptedDateTime和LastSuccedDateTimeUpdate 如果该表的条目不存在,则输入失败位(0),并且不更新LastSuccDateTimeUpdate Reporting Table: ---------------- -LastAttemptedDateTime -LastSuccDateTimeUpdate -WasSuccessfull (bit) 0 or 1 报告表: ---------------- -上次尝试日期时间 -LastSuccDateTimeUpdate -wasseccessfull(位)0或1Sql 根据记录的条目是否存在更新列,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个表,每天晚上记录服务器状态信息。我引用该表,其中企业中的每台服务器的列表保存在另一个表中,并对该表运行一个查询,以检查该服务器名的条目是否在最近几个小时内包含在Maint表中。那部分很好用 Lookup table: --------------- serverID serverName isActive Maintenance Table: -------------- ServerID ServerName LastAttemptedDateTimeStamp --Th
如何做到这一点?下面是一些伪代码用例:
Update ReportingTable R
SET Col1 = SomeValue,
Col2 = SomeOtherValue,
WasSuccesful = CASE
WHEN EXISTS (SELECT 1 FROM LookupTable WHERE ...) THEN 1
ELSE 0
END
如果您完成了OP I中列出的表结构,则可以更具体。我假设有一种方法可以将
报告
记录链接到查找
或维护
记录…您尝试过什么吗?我正在查找案例作为SQL Server确定“wassucsfull”部分的本机IF/THEN警报。如果或案例日期时间超过24小时,则输入0表示成功。如果datetime未满24小时,则输入1表示成功。不太清楚如何进行逻辑。无法用当前信息解决。我们缺少列(查找表中至少有一个日期戳),并且似乎有两个报告表。描述两个表,填充一些测试数据,以便我们有机会解决它。还要描述测试数据的所需输出感谢JNK,也就是relevent表结构,我要添加的唯一内容是在报告表中包含ServerID,其余的我可以理解。因此,从本质上讲,我们在报告表中查找表中的每个项目只有一个条目,所以我认为“updatetable”语句最好。如果在指定的时间内维护表中不存在记录(比如说24小时,我已经编写了此代码),那么我需要为成功输入“0”,并维护“上次更新”日期。如果记录确实存在,请输入1并更新上次更新的列。停!泰