Azure-Sql-Database

覆蓋 Azure SQL 數據庫中的舊數據

  • May 14, 2019

我目前正在從感測器接收數據並通過 Azure 流分析作業將其儲存到 Azure SQL 數據庫。我的問題是:如何用新數據覆蓋感測器中的舊數據?感測器有自己的 ID,因此可以通過感測器 ID 覆蓋數據。

您可以使用MERGE語句對錶中的數據執行有條件的 INSERT/UPDATE(有時稱為 UPSERT)。

例子:

MERGE INTO dbo.Output AS Target  
USING (SELECT DeviceId, ParkingStatus FROM IoInput) AS Source (Id, ParkingStatus)  
   ON Target.Id = Source.Id  
WHEN MATCHED THEN  
   UPDATE SET ParkingStatus = Source.ParkingStatus  
WHEN NOT MATCHED BY TARGET THEN  
   INSERT (Id, ParkingStatus) VALUES (Id, ParkingStatus)

此語句會將 IoInput 中的記錄與 Output 中的現有記錄相匹配。任何匹配的記錄都將使用 IoInput 中的值更新 Output 中的 ParkingStatus。IoInput 中任何不匹配的記錄都將插入到輸出中。

引用自:https://dba.stackexchange.com/questions/237960