Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Walsh
Salut,
Il y a le problème d'étendue (scope). En t-sql, l'étendue par défaut des variables est la "batch". Steve Dassin a déjà suggéré dans le passé d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non testé, cela devrait ressembler à quelque chose dans le genre:
set @sql='select @result = count(*) from categories' exec(@sql)
print @result
J'obtiens l'erreur "La variable '@result' doit être déclarée."
(l'exemple est simpliste et ne nécessite pas de sql dynamique, mais c'est pour l'exemple)
Je dois avoir un problème de syntaxe, non ?
-- Cordialement
Oxiane ---------------------------------------------------------- Omnia vanitas
Salut,
Il y a le problème d'étendue (scope). En t-sql, l'étendue par défaut
des variables est la "batch". Steve Dassin a déjà suggéré dans le passé
d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non
testé, cela devrait ressembler à quelque chose dans le genre:
Il y a le problème d'étendue (scope). En t-sql, l'étendue par défaut des variables est la "batch". Steve Dassin a déjà suggéré dans le passé d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non testé, cela devrait ressembler à quelque chose dans le genre:
Merci beaucoup de m'avoir mis sur la piste (et maché 90% du travail !)
-- Cordialement
Oxiane ---------------------------------------------------------- Omnia vanitas www.omniavanitas.com
"Michel Walsh" a écrit dans le message de news:
Salut,
Il y a le problème d'étendue (scope). En t-sql, l'étendue par
défaut
des variables est la "batch". Steve Dassin a déjà suggéré dans le passé d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non testé, cela devrait ressembler à quelque chose dans le genre:
"Oxiane" wrote in message news: > Bonjour, > > je souhaiterais récupérer le résultat d'un ordre SQL dynamique dans une > variable. > Quelque chose du style > > > use northwind > > declare @sql varchar(256) > declare @result varchar(256) > > set @sql='select @result = count(*) from categories' > exec(@sql) > > print @result > > > J'obtiens l'erreur "La variable '@result' doit être déclarée." > > > (l'exemple est simpliste et ne nécessite pas de sql dynamique, mais
c'est
> pour l'exemple) > > Je dois avoir un problème de syntaxe, non ? > > > -- > Cordialement > > Oxiane > ---------------------------------------------------------- > Omnia vanitas > > >
Merci beaucoup de m'avoir mis sur la piste (et maché 90% du travail !)
--
Cordialement
Oxiane
----------------------------------------------------------
Omnia vanitas
www.omniavanitas.com
"Michel Walsh" <vanderghast@VirusAreFunnierThanSpam> a écrit dans le message
de news:O045Sg9GEHA.1228@TK2MSFTNGP11.phx.gbl...
Salut,
Il y a le problème d'étendue (scope). En t-sql, l'étendue par
défaut
des variables est la "batch". Steve Dassin a déjà suggéré dans le passé
d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non
testé, cela devrait ressembler à quelque chose dans le genre:
"Oxiane" <sql2k@oxiane.net.enlever_ceci> wrote in message
news:OLirl0xGEHA.2624@TK2MSFTNGP09.phx.gbl...
> Bonjour,
>
> je souhaiterais récupérer le résultat d'un ordre SQL dynamique dans une
> variable.
> Quelque chose du style
>
>
> use northwind
>
> declare @sql varchar(256)
> declare @result varchar(256)
>
> set @sql='select @result = count(*) from categories'
> exec(@sql)
>
> print @result
>
>
> J'obtiens l'erreur "La variable '@result' doit être déclarée."
>
>
> (l'exemple est simpliste et ne nécessite pas de sql dynamique, mais
c'est
> pour l'exemple)
>
> Je dois avoir un problème de syntaxe, non ?
>
>
> --
> Cordialement
>
> Oxiane
> ----------------------------------------------------------
> Omnia vanitas
>
>
>
Merci beaucoup de m'avoir mis sur la piste (et maché 90% du travail !)
-- Cordialement
Oxiane ---------------------------------------------------------- Omnia vanitas www.omniavanitas.com
"Michel Walsh" a écrit dans le message de news:
Salut,
Il y a le problème d'étendue (scope). En t-sql, l'étendue par
défaut
des variables est la "batch". Steve Dassin a déjà suggéré dans le passé d'utiliser soit une table temporaire, soit d'utiliser sp_executesql. Non testé, cela devrait ressembler à quelque chose dans le genre:
"Oxiane" wrote in message news: > Bonjour, > > je souhaiterais récupérer le résultat d'un ordre SQL dynamique dans une > variable. > Quelque chose du style > > > use northwind > > declare @sql varchar(256) > declare @result varchar(256) > > set @sql='select @result = count(*) from categories' > exec(@sql) > > print @result > > > J'obtiens l'erreur "La variable '@result' doit être déclarée." > > > (l'exemple est simpliste et ne nécessite pas de sql dynamique, mais
c'est
> pour l'exemple) > > Je dois avoir un problème de syntaxe, non ? > > > -- > Cordialement > > Oxiane > ---------------------------------------------------------- > Omnia vanitas > > >