Bietet SQL Server ein Äquivalent zu MySQLs ON DUPLICATE KEY UPDATE?
In MySQL ermöglicht ON DUPLICATE KEY UPDATE die nahtlose Handhabung von Duplizieren Sie Schlüsselwerte, indem Sie vorhandene Zeilen aktualisieren, anstatt neue einzufügen. Diese Funktion ist besonders nützlich bei der Verwaltung von Eindeutigkeits- oder Primärschlüsseleinschränkungen.
SQL Server bietet eine vergleichbare Funktionalität durch seine MERGE-Anweisung. Die MERGE-Anweisung kombiniert die INSERT- und UPDATE-Vorgänge in einem einzigen Befehl und ermöglicht es Entwicklern, neue Zeilen einzufügen oder vorhandene Zeilen basierend auf angegebenen Kriterien zu aktualisieren.
Die folgende MERGE-Anweisung zeigt beispielsweise, wie eine neue Zeile eingefügt wird Die METER_DATA-Tabelle nur, wenn die Kombination aus rtu_id und time_local noch nicht vorhanden ist. Wenn ein Duplikat vorhanden ist, wird die Zeile aktualisiert:
MERGE INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target USING (SELECT 77748 AS rtu_id ,'12B096876' AS meter_id ,56112 AS meter_reading ,'20150602 00:20:11' AS time_local) AS source (rtu_id, meter_id, meter_reading, time_local) ON (target.rtu_id = source.rtu_id AND target.time_local = source.time_local) WHEN MATCHED THEN UPDATE SET meter_id = '12B096876' ,meter_reading = 56112 WHEN NOT MATCHED THEN INSERT (rtu_id, meter_id, meter_reading, time_local) VALUES (77748, '12B096876', 56112, '20150602 00:20:11');
Die WHEN MATCHED-Klausel führt den Aktualisierungsvorgang für die vorhandene Zeile aus, die die angegebene Bedingung erfüllt. Die WHEN NOT MATCHED-Klausel führt den Einfügevorgang für eine neue Zeile aus, die die Bedingung nicht erfüllt.
Durch die Verwendung der MERGE-Anweisung stellt SQL Server eine umfassende Funktion ähnlich der ON DUPLICATE KEY UPDATE von MySQL bereit und ermöglicht eine effiziente Handhabung von doppelte Schlüsselwerte.
Das obige ist der detaillierte Inhalt vonWie geht SQL Server mit doppelten Schlüsseln um, wie bei MySQL beim ON DUPLICATE KEY UPDATE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!