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 :
- Dernière mise à jour cumulative pour SQL Server 2012 SP2
- Dernière mise à jour cumulative pour SQL Server 2014
- Dernière mise à jour cumulative pour SQL Server 2012 SP1
- Dernière mise à jour cumulative pour SQL Server 2008 R2 SP2
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 à ».