CORRECTIF : SQL Server peut se bloquer lorsqu’une demande pour l’exécution d’une procédure stockée distante contient la définition incomplète d’arguments

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3135750
Symptômes
Sur un serveur distant qui exécute Microsoft SQL Server 2012 ou SQL Server 2014, vous avez une procédure stockée qui possède un argument de sortie semblable à la suivante :

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
En général, la syntaxe pour appeler une procédure à distance semblable à la suivante :

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample ? OUTPUT', @outputResult OUTPUT) at [MyRemoteServer];print @outputResult;
Si vous omettez la » ? Cadre de sortie » de la syntaxe d’appel, le serveur local qui exécute SQL Server peut se bloquer. Le serveur distant continuer à fonctionner car l’exécution n’atteint jamais il fait de cette omission de syntaxe. Par exemple, la syntaxe ressemble à ceci :

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Une variable qui n’a pas été initialisée ne provoque pas de blocage du serveur local. Toutefois, il génère un message d’erreur indiquant que pas tous les arguments sont spécifiés pour l’appel (comme il se doit). Par exemple, vous avez la syntaxe suivante :

-- Declare a variable to hold a result, and initialize it with NULL, or leave uninitializeddeclare @outputResult varchar(10) = NULL;execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Dans ce cas, vous recevez un message d’erreur semblable au suivant :

Msg 201, niveau 16, état 4, procédure procExample, ligne 10

Procédure ou la fonction « procExample » attend le paramètre '@retVal', qui n’a pas été fourni.
Résolution

Informations de mise à jour

Ce problème a été tout d’abord résolu dans la mise à jour cumulative suivante pour SQL Server :
Recommandation : Installez la mise à jour cumulative la plus récente pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et des correctifs de sécurité qui ont été inclus dans la précédente mise à jour cumulative. Découvrez les dernières mises à jour cumulatives pour SQL Server :

Remarque : Vous trouverez les informations les plus récentes de SQL Server est construit à partir de Où trouver des informations sur la dernière version de SQL Server construit.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Références
En savoir plus sur la terminologie que Microsoft utilise pour décrire les mises à jour logicielles.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3135750 - Dernière mise à jour : 05/31/2016 11:28:00 - Révision : 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3135750 KbMtfr
Commentaires