Afficher un message
Vieux 10/08/2007, 04h53   #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
 
Page generated in 0,04925 seconds with 9 queries