Symptômes
Prenons l’exemple du scénario suivant :
-
Vous disposez d’une base de données qui utilise le modèle de récupération BULK_LOGGED ou simple dans Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014.
-
Vous activez le commutateur SET XACT_ABORT .
-
Vous essayez d’exécuter plusieurs instructions d' insertion en bloc dans une seule transaction distribuée.
Dans ce scénario, l’instruction d' insertion en bloc peut échouer et vous recevez le message d’erreur suivant :
Emplacement : PAGEREF. cpp : 913Expression : IS_OFF (BUF_MINLOGGED, m_buf->BSTAT) | | pageModifyType ! = PageModifyType_Contents | | GetPagePtr ()->IsTextPage () SPID : 56Process ID : 2136Msg 3624, niveau 20, état 1, vérification de l’assertion du système en ligne 7A. Pour plus d’informations, consultez le journal des erreurs SQL Server. En règle générale, un échec d’assertion est lié à un bogue logiciel ou à des données endommagées. Pour vérifier la corruption de la base de données, envisagez d’exécuter DBCC CHECKDB. Si vous avez accepté d’envoyer des vidages à Microsoft lors de l’installation, un mini-vidage sera envoyé à Microsoft. Il est possible qu’une mise à jour soit disponible à partir de Microsoft dans le Service Pack le plus récent ou dans un QFE du support technique. MSG 0, niveau 20, état 0, ligne 0 une erreur sérieuse s’est produite sur la commande actuelle. Les résultats éventuels doivent être supprimés.
Par ailleurs, un fichier de mini-vidage est susceptible d’être généré dans le dossier journal de SQL Server. Remarque Ce problème se produit généralement lorsque SQL Server Integration Services (SSIS) est utilisé. Par exemple, Microsoft Distributed Transaction Coordinator (MS DTC) est impliqué pour démarrer des transactions distribuées avec SET XACT_ABORT si la propriété niveau du package TransactionOption est définie sur obligatoire.
Cause
Ce problème se produit en raison d’une erreur dans SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014.
Résolution
Le problème a été résolu dans la mise à jour cumulative suivante de SQL Server.
Mise à jour cumulative 1 pour SQL Server 2014 /en-us/help/2931693
Mise à jour cumulative 8 pour SQL Server 2012 SP1 /en-us/help/2917531
Mise à jour cumulative 10 pour SQL Server 2008 R2 SP2 /en-us/help/2908087
Mise à jour cumulative 10 pour SQL Server 2008 SP1 /en-us/help/2279604
Mise à jour cumulative 1 pour SQL Server 2008 SP2 /en-us/help/2289254
Mise à jour cumulative 5 pour SQL Server 2008 R2 /en-us/help/2438347
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Solution de contournement
Pour contourner ce problème, définissez la base de données sur le modèle de récupération complet .
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.
Références
Pour plus d’informations sur le paramètre SET XACT_ABORT , visitez le site Web Microsoft Developer Network (MSDN) suivant :
Informations générales sur le paramètre « définir le XACT_ABORT »Pour plus d’informations sur les opérations que vous avez effectuées en toute simplicité, visitez le site Web MSDN suivant :
Informations générales sur les opérations en minimumPour plus d’informations sur la conservation de l’intégrité des données à l’aide des transactions, visitez le site Web MSDN suivant :
Informations générales sur le maintien de l’intégrité des données à l’aide de transactionsPour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
935897 Un modèle de maintenance incrémentiel est disponible auprès de l’équipe SQL Server pour obtenir des correctifs pour les problèmes signalésPour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
822499Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL ServerPour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft