Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous insérez de nombreuses lignes dans une table dans Microsoft SQL Server 2008 ou dans SQL Server 2008 R2 en utilisant l’une des requêtes suivantes :

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    Remarques

    • Le <target_table espace réservé>représente le nom réel de la table cible.

    • Le prédicat<> espace réservé représente le prédicat réel.

    • Le <source_table espace réservé>représente la table source réelle.

  • Le seuil d’escalade du verrou du tableau est dépassé.

Dans ce scénario, le moteur de base de données ne transfère pas les verrous de la table.

Cause

Ce problème survient parce que SQL Server ne compte pas en interne tous les nouveaux verrous générés par les opérations d’insertion. C’est pourquoi le seuil d’escalade de verrou peut ne pas être déclenché quand il est requis.

Résolution

Informations sur le Service Pack pour SQL Server 2008

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour SQL Server 2008. pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

968382 Obtention du dernier Service Pack pour SQL Server 2008

Informations sur le Service Pack pour SQL Server 2008 R2

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour SQL Server 2008 R2. Pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2527041Obtention du dernier Service Pack pour SQL Server 2008 R2

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.Ce problème a été corrigé pour la première fois dans SQL Server 2008 Service Pack 2 pour SQL Server 2008. ce problème a été corrigé dans SQL Server 2008 R2 Service Pack 1 pour SQL Server 2008 R2.

Informations supplémentaires

Pour plus d’informations sur la réaffectation de verrou, visitez le site Web Microsoft TechNet suivant :

Informations générales sur l’escalade du verrouPour déterminer si les verrouillages d’une table sont transférés, exécutez les instructions Transact-SQL suivantes :

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

Si les verrouillages de la table sont transférés, la dernière instruction SELECT renvoie une valeur de 1 ou 2. Si les verrouillages de la table ne sont pas escaladés, la dernière instruction SELECT renvoie une valeur de 40 066 ou 40 067.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×