Symptômes

Supposez que vous créez une procédure stockée qui utilise un curseur sur une variable de table dans Microsoft SQL Server 2012 ou SQL Server 2014. Par ailleurs, la procédure stockée met à jour la table à l’aide d’une instruction Where Current de conjointement avec le curseur. Par exemple, votre procédure stockée peut ressembler à ce qui suit :

CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Lors de l’exécution de la procédure stockée à l’aide de la procédure stockée système sp_refreshsqlmodule , il est possible qu’il y ait une violation d’accès et que vous receviez des messages d’erreur similaires à ce qui suit :

MSG 596, niveau 21, état 1Cannot continuer l’exécution, car la session est en état d’arrêt. MSG 0, niveau 20, état 0A erreur sérieuse s’est produit dans la commande actuelle. Les résultats éventuels doivent être supprimés.

Dans ce cas, des erreurs similaires à ce qui suit sont également inscrites dans les journaux des erreurs SQL Server :

Date Time. 730 spid51 SqlDumpExceptionHandler : le processus 51 a généré une exception irrécupérable c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] 'Date Time. 730 spid51 * Date Time. 730 spid51 *

Résolution

Informations sur les mises à jour cumulatives

Ce problème a été résolu dans les mises à jour suivantes :

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 :

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

Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×