将表插入到update_time最近的地方

时间:2019-02-10 22:46:34

标签: sql sql-server powershell

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

例如,给定该表并在

处添加了3个会话行信息
  

2/10/2019 5:15 PM

table

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

  

2/10/2019 5:15 PM

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

$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的行,这样它就变成了这样:

desired table

我要查询的伪代码:

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

1 个答案:

答案 0 :(得分:2)

我认为您想要更新。像这样:

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

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