Est-il un moyen pour verrouiller une ligne dans le SQL base de données 2005-2008 sans démarrage d'une transaction, de sorte que les autres processus ne peut pas mettre à jour la ligne jusqu'à ce qu'il est débloqué?
De l'indicateur HOLDLOCK donnera des instructions SQL Server pour tenir le verrou jusqu'à ce que vous valider la transaction. Le VERROU indicateur de verrouillage seulement de ce dossier et de ne pas émettre une page ou d'un verrou de table.
La serrure sera également disponible si vous fermez votre connexion ou de l'expiration du délai. Je serais TRÈS prudent en faisant cela, car il va arrêter toutes les instructions SELECT qui a frappé cette ligne morts dans leurs voies. SQL Server a de nombreux indicateurs de verrouillage que vous pouvez utiliser. Vous pouvez les voir dans la documentation en Ligne lorsque vous effectuez une recherche sur HOLDLOCK ou VERROU.
J'ai essayé cela, mais il n'est pas ce que je veux. En effet, elle détient le verrou, quand j'ai effectuer une mise à jour. La mise à jour attend jusqu'à ce que le verrou est libéré et après cela, il met à jour l'enregistrement (ce n'est pas ce que je veux). Deuxièmement, je peux toujours sélectionner un sans aucun problème.
Tout ce que vous exécuter sur le serveur arrive dans une transaction, soit implicite ou explicite.
Vous ne pouvez pas simplement verrouiller une ligne avec aucune transaction (faire la ligne en lecture seule). Vous pouvez rendre la base de données en lecture seule, mais pas seulement une ligne.
Expliquez votre objectif et il pourrait être une meilleure solution. Les niveaux d'Isolation et de verrouillage des conseils et des versioning.
Une Application Verrouille est juste un verrou avec un nom que vous pouvez "verrouiller", "déverrouiller" et de vérifier s'il est verrouillé. voir le lien ci-dessus pour plus de détails. (Ils être débloqué si votre connexion se ferme, etc, qui ont tendance à nettoyer vis à vis)
Je ne peux pas utiliser les verrous d'application parce que d'autres applications qui accèdent à la "verrouillé" ligne ne savent pas qu'ils ont besoin pour vérifier l'application de verrouillage d'abord.
Vous pouvez utiliser Verrou ou d'autres astuces mais vous devriez être attention..
De l'indicateur HOLDLOCK donnera des instructions SQL Server pour tenir le verrou jusqu'à ce que vous valider la transaction. Le VERROU indicateur de verrouillage seulement de ce dossier et de ne pas émettre une page ou d'un verrou de table.
La serrure sera également disponible si vous fermez votre connexion ou de l'expiration du délai. Je serais TRÈS prudent en faisant cela, car il va arrêter toutes les instructions SELECT qui a frappé cette ligne morts dans leurs voies. SQL Server a de nombreux indicateurs de verrouillage que vous pouvez utiliser. Vous pouvez les voir dans la documentation en Ligne lorsque vous effectuez une recherche sur HOLDLOCK ou VERROU.
OriginalL'auteur Gulzar Nazim
Tout ce que vous exécuter sur le serveur arrive dans une transaction, soit implicite ou explicite.
Vous ne pouvez pas simplement verrouiller une ligne avec aucune transaction (faire la ligne en lecture seule). Vous pouvez rendre la base de données en lecture seule, mais pas seulement une ligne.
Expliquez votre objectif et il pourrait être une meilleure solution. Les niveaux d'Isolation et de verrouillage des conseils et des versioning.
OriginalL'auteur Ricardo C
Avez-vous besoin de verrouiller un ligne, ou devrait Sql Server Application verrouille faire ce que vous avez besoin?
Une Application Verrouille est juste un verrou avec un nom que vous pouvez "verrouiller", "déverrouiller" et de vérifier s'il est verrouillé. voir le lien ci-dessus pour plus de détails. (Ils être débloqué si votre connexion se ferme, etc, qui ont tendance à nettoyer vis à vis)
OriginalL'auteur Ian Ringrose