Si je courais cela sans une déclaration de validation ...
begin transaction
update dateranges set DateRangeTypeId = 1 where DateRangeId = 154
Dans un autre onglet de Studio de gestion, je peux sélectionner la plage avec ID 154 et indique l'ancienne valeur pour la colonne Type.
Pourquoi le bloc sélectionné n'est-il pas sur la ligne mise à jour?
En supposant que la deuxième fenêtre SSMS utilise la valeur par défaut READ_COMMITTED
Niveau d'isolation, vous verrez la valeur précédente au lieu d'être bloquée par la transaction non engagée si la base de données ait le READ_COMMITTED_SNAPSHOT
Réglage allumé.
SELECT name, snapshot_isolation_state_desc
FROM sys.databases
ORDER BY name;
Le READ_COMMITTED_SNAPSHOT
Réglage de la base de données utilise la version de ligne au lieu de verrouiller la cohérence de lecture afin que les écrivains ne bloquent pas les lecteurs et visa-versa.