首页 > 解决方案 > 在 update_time 最新的地方插入表

问题描述

我有一个包含会话数据的表。我想为最近添加的每个新会话行插入硬编码值。

例如,给定此表,其中添加了 3 个会话行信息

2019 年 2 月 10 日下午 5:15

桌子

我想最晚将server1业务值插入 3 行(第 1-3 行)UDPATE_TIME,在这种情况下是

2019 年 2 月 10 日下午 5:15

我使用此查询来获取最新的更新时间:

$update_time = query "SELECT FORMAT(MAX([UPDATE_TIME]), 'M/d/yyyy h:mm tt') AS UPDATE_TIME FROM table"| Select -ExpandProperty UPDATE_TIME;

我使用这个插入查询来插入值:

query "INSERT INTO table (SERVERNAME, Business_Name) VALUES ('server1', 'business')"

但是,正如您可以看到它插入新行(row4),相反,我想插入已经存在 1-3 的行,这样它就变成了这样:

想要的表

我正在寻找的查询伪代码:

query "INSERT INTO table (SERVERNAME, Business_Name) VALUES ('server1', 'business') wherever $update_time

标签: sqlsql-serverpowershell

解决方案


我想你想要更新。像这样的东西:

update [table]
    set business_name = @business_name
    where update_time = (select max(t2.update_time) from [table] t2);

在插入之后进行更新似乎很危险——不同的线程可能同时插入数据。但是,这回答了您确实提出的问题。


推荐阅读