Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 根据记录的条目是否存在更新列_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 根据记录的条目是否存在更新列

Sql 根据记录的条目是否存在更新列,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个表,每天晚上记录服务器状态信息。我引用该表,其中企业中的每台服务器的列表保存在另一个表中,并对该表运行一个查询,以检查该服务器名的条目是否在最近几个小时内包含在Maint表中。那部分很好用 Lookup table: --------------- serverID serverName isActive Maintenance Table: -------------- ServerID ServerName LastAttemptedDateTimeStamp --Th

我有一个表,每天晚上记录服务器状态信息。我引用该表,其中企业中的每台服务器的列表保存在另一个表中,并对该表运行一个查询,以检查该服务器名的条目是否在最近几个小时内包含在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或1
如何做到这一点?

下面是一些伪代码用例:

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并更新上次更新的列。停!泰