Pour spécifier des paramètres de sortie lors de l'utilisation de sp_executesql procédure stockée dans SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 262499 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

La procédure stockée système sp_executesql est utilisée pour exécuter une instruction T-SQL qui peut être réutilisée plusieurs fois, ou pour exécuter une instruction T-SQL créée dynamiquement. Elle accepte des paramètres comme entrées pour traiter les instructions T-SQL ou des lots. Il permet également des paramètres de sortie doit être spécifié afin que toute sortie générée par les instructions T-SQL peut être stocké (même si cela n'est pas documentée dans la documentation en ligne de SQL Server).

Deux scénarios dans lesquels les paramètres de sortie sera utiles avec sp_executesql sont les suivantes :
  • Si sp_executesql génère une sortie qui est utile, cette sortie à un paramètre de sortie le stockage permet le lot d'instructions appelant d'utiliser le paramètre pour les requêtes ultérieures.
  • Si sp_executesql exécute une procédure stockée qui est définie à l'aide de paramètres de sortie, les paramètres de sortie de sp_executesql peuvent servir à stocker les sorties générées par la procédure stockée.

Plus d'informations

Les deux exemples suivants illustrent l'utilisation des paramètres de sortie avec sp_executesql.

Exemple 1
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @IntVariable INT
DECLARE @Lastlname varchar(30)
SET @SQLString = N'SELECT @LastlnameOUT = max(lname)
                   FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint,
                        @LastlnameOUT varchar(30) OUTPUT'
SET @IntVariable = 35
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@level = @IntVariable,
@LastlnameOUT=@Lastlname OUTPUT
SELECT @Lastlname
				
Exemple 2
CREATE PROCEDURE Myproc
    @parm varchar(10),
    @parm1OUT varchar(30) OUTPUT,
    @parm2OUT varchar(30) OUTPUT
    AS
      SELECT @parm1OUT='parm 1' + @parm
     SELECT @parm2OUT='parm 2' + @parm
GO
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN VARCHAR(10)
DECLARE @parmRET1 VARCHAR(30)
DECLARE @parmRET2 VARCHAR(30)
SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
                             @parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm varchar(10),
                      @parm1OUT varchar(30) OUTPUT,
                      @parm2OUT varchar(30) OUTPUT'

EXECUTE sp_executesql
    @SQLString,
    @ParmDefinition,
    @parm=@parmIN,
    @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
go
drop procedure Myproc
				
Pour plus d'informations, voir « sp_executesql (T-SQL) » et « Utilisation de sp_executesql » dans SQL Server Books Online.For plus d'informations, reportez-vous à la section « Utilisation sp_executesql » dans la documentation en ligne de SQL Server et « sp_executesql (T-SQL) dans la documentation en ligne de SQL Server 7.0 » ou « sp_executesql » dans la documentation en ligne de SQL Server 2000.

Propriétés

Numéro d'article: 262499 - Dernière mise à jour: lundi 22 décembre 2014 - Version: 5.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 7.0 Standard
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Mots-clés : 
kbsqlsetup kbinfo kbmt KB262499 KbMtfr
Traduction automatique
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: 262499
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com