Supposons une structure de table de MyTable (MyTableId NVARCHAR (MAX) PRIMARY KEY, NumberOfInserts INTEGER).Solutions sécurisées pour INSERT AND UPDATE sur SQL Server 2016
Je dois souvent soit mettre à jour, c'est-à-dire incrémenter un compteur d'un enregistrement existant, soit insérer un nouvel enregistrement s'il n'existe pas avec la valeur 0 pour NumberOfInserts.
essentiellement:
IF (MyTableId exists)
run UPDATE command
ELSE
run INSERT command
Ma préoccupation est en train de perdre des données en raison de la race des conditions, etc.
Quelle est la manière la plus sûre pour écrire cela?
J'ai besoin d'être précis à 100% si possible, et prêt à sacrifier la vitesse si nécessaire.
Vous pouvez utiliser la commande MERGE pour combiner, mettre à jour, insérer et supprimer tous en même temps. Couple d'observations, s'il vous plaît ne pas appeler cette colonne «clé» c'est un mot réservé dans SQL Server. Aussi, utilisez-vous cela comme clé primaire? Si c'est le cas, NVARCHAR (MAX) est une très mauvaise idée. –