OVH Cloud OVH Cloud

Urgent - requete dynamique

3 réponses
Avatar
ama
Bonjour, est-il possible de cr=E9er une requete dynamiquement dans une
fonction sous sql server, du style :

declare @mytable as varchar(100)
set mytable =3D 'clients'
declare @sql as varchar(100)
set @sql =3D 'Select * from ' + @mytable

Mon probl=E8me se situe au niveau du "from", car visisblement on ne peut
pas faire de "exec" et on ne peut pas non plus les utiliser dans les
curseurs.

Comment faire une requete avec un nom de table dynamique dans une
function ?

Merci pour vos r=E9ponses...

3 réponses

Avatar
Steve Kass
ama wrote:

Bonjour, est-il possible de créer une requete dynamiquement dans une
fonction sous sql server, du style :

declare @mytable as varchar(100)
set mytable = 'clients'
declare @sql as varchar(100)
set @sql = 'Select * from ' + @mytable





Non.

Mon problème se situe au niveau du "from", car visisblement on ne peut
pas faire de "exec" et on ne peut pas non plus les utiliser dans les
curseurs.

Comment faire une requete avec un nom de table dynamique dans une
function ?




On ne peut pas le faire.

Merci pour vos réponses...





Steve Kass
Drew University
Avatar
jgabillaud
Oui c'est possible par exemple:
use northwind
declare @mytable as varchar(100)
set @mytable = 'customers'
declare @sql as varchar(100)
set @sql = 'Select * from ' + @mytable
execute( @sql)

sinon il est également possible de créer une requête dynamiquement par
l'intermédiaire de sp_executesql
"ama" a écrit :

Bonjour, est-il possible de créer une requete dynamiquement dans une
fonction sous sql server, du style :

declare @mytable as varchar(100)
set mytable = 'clients'
declare @sql as varchar(100)
set @sql = 'Select * from ' + @mytable

Mon problème se situe au niveau du "from", car visisblement on ne peut
pas faire de "exec" et on ne peut pas non plus les utiliser dans les
curseurs.

Comment faire une requete avec un nom de table dynamique dans une
function ?

Merci pour vos réponses...




Avatar
Steve Kass
ama a demandé si c'est possible "dans une fonction". L'utilisation de
"execute"
est interdit dans une fonction.

SK

jgabillaud wrote:

Oui c'est possible par exemple:
use northwind
declare @mytable as varchar(100)
set @mytable = 'customers'
declare @sql as varchar(100)
set @sql = 'Select * from ' + @mytable
execute( @sql)

sinon il est également possible de créer une requête dynamiquement par
l'intermédiaire de sp_executesql
"ama" a écrit :



Bonjour, est-il possible de créer une requete dynamiquement dans une
fonction sous sql server, du style :

declare @mytable as varchar(100)
set mytable = 'clients'
declare @sql as varchar(100)
set @sql = 'Select * from ' + @mytable

Mon problème se situe au niveau du "from", car visisblement on ne peut
pas faire de "exec" et on ne peut pas non plus les utiliser dans les
curseurs.

Comment faire une requete avec un nom de table dynamique dans une
function ?

Merci pour vos réponses...