Procédure spécifier les paramètres de sortie lorsque vous utilisez sp_executesql 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. Il prend des paramètres comme entrées afin de traiter les instructions ou lots d'instructions T-SQL. Il permet également de paramètres de sortie pour être spécifié, de sorte que toute sortie générée à partir d'instructions de 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 suivants :
  • Si sp_executesql génère la sortie qui vous est utile, stockage de cette sortie vers un paramètre de sortie permet du lot d'instructions d'appel utiliser le paramètre pour les requêtes ultérieures.
  • Si le sp_executesql s'exécute une procédure stockée qui est définie à l'aide des paramètres de sortie, les paramètres de sortie de sp_executesql peuvent servir à maintenir les sorties générées à partir de 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, consultez "sp_executesql (T-SQL)" et "Using sp_executesql" dans la documentation en ligne de SQL Server. Pour plus d'informations, consultez «Using 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: jeudi 22 février 2007 - Version: 4.3
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 : 
kbmt kbinfo KB262499 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
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