|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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 > > > |
|
![]() |
| Outils de la discussion | |
|
|