KB2950189 - CORRECTIF : une violation d’accès se produit lorsque vous exécutez une requête de mise à jour sur une table qui a un déclencheur DML dans SQL Server

S’applique à
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptômes

Supposons que vous disposez d’une table qui a un déclencheur DML dans Microsoft SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014 et que dans ce déclencheur, vous joignez une table insérée/supprimée à d’autres tables. Lorsque vous exécutez une instruction DML sur cette table, une violation d’accès peut se produire pendant la compilation du déclencheur et vous recevez l’erreur suivante :

Remarque

Une erreur grave s’est produite sur la commande actuelle. Les résultats, le cas échéant, doivent être ignorés.

En outre, les erreurs suivantes sont enregistrées SQL Server journal des erreurs :

Remarque

<Date><Et heure> spid# ***Vidage de pile envoyé à <FilePath>\SQLDumpxxx.txt
<Date><Time> spid# SqlDumpExceptionHandler : Processus # généré exception irrécupérable c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server termine ce processus.
<Date><Time> spid# * *******************************************************************************
<Date><Time> spid# *
<Date><Time> spid# * BEGIN STACK DUMP :
<Date><Time> spid# * <Date><Time> spid #
<Date><Time> spid# *
<Date><Time> spid# *
<Date><Time> spid# * Exception Address = 0000000009E4F2A Module(sqlservr+000000000002D4F2A)
<Date><Time> spid# * Code d’exception = c0000005 EXCEPTION_ACCESS_VIOLATION
<Date><Time> spid# * Une violation d’accès s’est produite adresse d’écriture 00000000000000000
<Date><Time> spid# * Mémoire tampon d’entrée 510 octets -
<Date><Et heure> spid# * SQL_query_code

Résolution

Le problème a été résolu pour la première fois dans la mise à jour cumulative suivante de SQL Server.

Mise à jour cumulative 1 pour SQL Server 2012 SP2 /en-us/help/2976982

Mise à jour cumulative 2 pour SQL Server 2014 /en-us/help/2967546

Mise à jour cumulative 10 pour SQL Server 2012 SP1 /en-us/help/2954099

Mise à jour cumulative 12 pour SQL Server 2008 R2 SP2 /en-us/help/2938478

À propos des mises à jour cumulatives pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous 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 le problème, n’utilisez pas la table insérée/supprimée directement dans une requête en la joignant à d’autres tables, mais mettez-la en cache dans une table temporaire et utilisez la table temporaire dans la requête.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».