PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > ms.public.fr.sqlserver > Transact-SQL - SQL dynamique
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Transact-SQL - SQL dynamique

Réponse
 
LinkBack Outils de la discussion
Vieux 09/08/2007, 22h56   #1
Patrick
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Transact-SQL - SQL dynamique

Bonjour,

Je suis obligé d'utiliser du SQL dynamique pour créer le SQL d'une requête.
J'utilise donc une variable qui contient ce SQL.
La procédure stockée qui utilise ce SQL dynamique doit renvoyer une valeur
qui est calculée par celui-ci. Mais cela ne fonctionne jamais.

La procédure est dans ce genre :

DECLARE @total1 int

EXEC ('DECLARE @total2 int
@total2 = (SELECT SUM(' + @monChamp + ')
FROM maTable)')

@total1 = @total2

J'aimerais récupérer la valeur contenue dans la variable @total2.

Savez-vous pourquoi et comment faire pour pouvoir récupérer la valeur
calculée par le SQL ?

Merci pour votre aide.

--
Patrick
  Réponse avec citation
Vieux 10/08/2007, 05h53   #2
Sylvain Lafontaine
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Transact-SQL - SQL dynamique

Exemple:

declare @i int
exec sp_executesql N'select @i = count(idecole) + 1 from ecoles', N'@i int
output', @i output

select @i


Faites bien attention de ne pas oublier les « N' », sinon cela ne
fonctionnera pas. Voir aussi
http://www.nigelrivett.net/SQLTsql/sp_executeSQL.html :

-- setting output parameter from dynamic stored procedure call

declare @OutputParameter varchar(100) ,
@error int ,
@SPName varchar(128) ,
@SPCall nvarchar(128) ,
@rc int
select @SPCall = 'exec ' + @SPName + ' @OutputParameter output'
exec @rc = sp_executesql @SPCall, N'@OutputParameter varchar(100) output',
@OutputParameter output
select @Error = @@error

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Patrick" <Patrick@discussions.microsoft.com> wrote in message
news:C6D2C39A-3FE3-4595-AA2F-262C1F0EAB7D@microsoft.com...
> Bonjour,
>
> Je suis obligé d'utiliser du SQL dynamique pour créer le SQL d'une
> requête.
> J'utilise donc une variable qui contient ce SQL.
> La procédure stockée qui utilise ce SQL dynamique doit renvoyer une valeur
> qui est calculée par celui-ci. Mais cela ne fonctionne jamais.
>
> La procédure est dans ce genre :
>
> DECLARE @total1 int
>
> EXEC ('DECLARE @total2 int
> @total2 = (SELECT SUM(' + @monChamp + ')
> FROM maTable)')
>
> @total1 = @total2
>
> J'aimerais récupérer la valeur contenue dans la variable @total2.
>
> Savez-vous pourquoi et comment faire pour pouvoir récupérer la valeur
> calculée par le SQL ?
>
> Merci pour votre aide.
>
> --
> Patrick



  Réponse avec citation
Vieux 10/08/2007, 14h24   #3
Patrick
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Transact-SQL - SQL dynamique

Merci.

--
Patrick


"Sylvain Lafontaine" wrote:

> Exemple:
>
> declare @i int
> exec sp_executesql N'select @i = count(idecole) + 1 from ecoles', N'@i int
> output', @i output
>
> select @i
>
>
> Faites bien attention de ne pas oublier les « N' », sinon cela ne
> fonctionnera pas. Voir aussi
> http://www.nigelrivett.net/SQLTsql/sp_executeSQL.html :
>
> -- setting output parameter from dynamic stored procedure call
>
> declare @OutputParameter varchar(100) ,
> @error int ,
> @SPName varchar(128) ,
> @SPCall nvarchar(128) ,
> @rc int
> select @SPCall = 'exec ' + @SPName + ' @OutputParameter output'
> exec @rc = sp_executesql @SPCall, N'@OutputParameter varchar(100) output',
> @OutputParameter output
> select @Error = @@error
>
> --
> Sylvain Lafontaine, ing.
> MVP - Technologies Virtual-PC
> E-mail: sylvain aei ca (fill the blanks, no spam please)
>
>
> "Patrick" <Patrick@discussions.microsoft.com> wrote in message
> news:C6D2C39A-3FE3-4595-AA2F-262C1F0EAB7D@microsoft.com...
> > Bonjour,
> >
> > Je suis obligé d'utiliser du SQL dynamique pour créer le SQL d'une
> > requête.
> > J'utilise donc une variable qui contient ce SQL.
> > La procédure stockée qui utilise ce SQL dynamique doit renvoyer une valeur
> > qui est calculée par celui-ci. Mais cela ne fonctionne jamais.
> >
> > La procédure est dans ce genre :
> >
> > DECLARE @total1 int
> >
> > EXEC ('DECLARE @total2 int
> > @total2 = (SELECT SUM(' + @monChamp + ')
> > FROM maTable)')
> >
> > @total1 = @total2
> >
> > J'aimerais récupérer la valeur contenue dans la variable @total2.
> >
> > Savez-vous pourquoi et comment faire pour pouvoir récupérer la valeur
> > calculée par le SQL ?
> >
> > Merci pour votre aide.
> >
> > --
> > Patrick

>
>
>

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 06h39.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,09487 seconds with 11 queries