Azure-Sql-Database
覆蓋 Azure SQL 數據庫中的舊數據
我目前正在從感測器接收數據並通過 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 中任何不匹配的記錄都將插入到輸出中。