Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer la procédure stockée de mise à jour sur SQL Server

Votre hypothèse est juste, c'est la façon optimale de le faire et cela s'appelle upsert/merge.

Importance d'UPSERT - de sqlservercentral.com :

Pour chaque mise à jour dans le cas mentionné ci-dessus, nous supprimons une lecture supplémentaire de la table si nous utilisons UPSERT au lieu d'EXISTS. Malheureusement pour une insertion, les méthodes UPSERT et IF EXISTS utilisent le même nombre de lectures sur la table. être fait quand il y a une raison très valable pour justifier les E/S supplémentaires. La façon optimale de faire les choses est de s'assurer que vous avez le moins de lectures possible sur la base de données.

La meilleure stratégie consiste à tenter la mise à jour. Si aucune ligne n'est affectée par la mise à jour, insérez-la. Dans la plupart des cas, la ligne existera déjà et une seule E/S sera requise.

Modifier  :Veuillez consulter cette réponse et le billet de blog lié pour en savoir plus sur les problèmes liés à ce modèle et sur la manière de le faire fonctionner en toute sécurité.