Maison >base de données >tutoriel mysql >Comment puis-je obtenir la fonctionnalité de mise à jour de clé en double de MySQL dans SQL Server ?

Comment puis-je obtenir la fonctionnalité de mise à jour de clé en double de MySQL dans SQL Server ?

DDD
DDDoriginal
2024-12-28 10:13:18214parcourir

How Can I Achieve MySQL's ON DUPLICATE KEY UPDATE Functionality in SQL Server?

Alternative SQL Server à ON DUPLICATE KEY UPDATE de MySQL

Dans MySQL, la clause ON DUPLICATE KEY UPDATE permet aux utilisateurs de spécifier qu'une ligne doit être mis à jour si une contrainte de clé en double est violée. Cette fonctionnalité permet une gestion efficace des scénarios de clés en double dans les opérations de manipulation de données.

SQL Server fournit un mécanisme similaire pour obtenir ce comportement via l'instruction MERGE. L'instruction MERGE permet aux utilisateurs d'effectuer une combinaison d'opérations INSERT, UPDATE et DELETE en fonction de critères de correspondance entre deux tables.

Par exemple, pour simuler le comportement de ON DUPLICATE KEY UPDATE dans SQL Server, considérez ce qui suit Instruction MERGE :

MERGE
INTO MyTable AS target
USING (SELECT id, value FROM NewData) AS source
ON (target.id = source.id)
WHEN MATCHED
  THEN UPDATE SET value = source.value
WHEN NOT MATCHED
  THEN INSERT (id, value) VALUES (source.id, source.value);

Dans cette instruction, l'opération MERGE vérifie d'abord si une ligne avec l'ID (id) spécifié existe déjà dans la table cible (MaTable). Si une ligne correspondante est trouvée, la valeur est mise à jour avec la valeur de la table source (NewData). Si aucune ligne correspondante n'est trouvée, une nouvelle ligne est insérée.

En utilisant l'instruction MERGE, SQL Server fournit une alternative efficace et polyvalente à la clause ON DUPLICATE KEY UPDATE de MySQL. Il permet aux développeurs de gérer les scénarios de clés en double avec facilité et flexibilité dans leurs opérations de manipulation de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn