J'ai des problèmes pour mettre à jour certaines lignes dans SQL Server (2005 et 2008).Comment mettre à jour des tables avec des colonnes nvarchar (max) avec des verrous minimes
Souvent, lorsque j'essaie de mettre à jour une ligne tout en ayant une requête en cours (select * from thistable
), je lance la commande de mise à jour et elle échouera en raison d'un problème de délai/verrouillage.
Il n'apparaît que sur les tables avec nvarchar(max)/text
colonnes!
Même si j'essaye de SELECT * FROM thistable WITH(ROWLOCK)
, je rencontre le même problème.
Ma question de base est ici:
Puis-je motiver SQL Server de ne pas bloquer plus de la ligne réelle?
Edit: Je lance le premier SELECT ensuite je tente de METTRE À JOUR ...
Il y a une grande explication sur le verrouillage dans SQL-Serveur on simple talk
@marc_s: pourquoi est-ce que j'obtiens ces verrous en faisant UNE mise à jour? –
@marc_s: vous n'avez donc pas de solution pour moi? –
@marc_s: Je pense que vous n'avez pas compris mon problème. Je ne fais que mettre à jour UNE (1) ligne et je ne peux pas le faire, parce que la sélection ne le permettait pas. Sur les tables sans colonnes de texte, je n'ai aucun problème. –