Utiliser varible comme nom de champs dans une procédure stocké

[Résolu]
Signaler
Messages postés
5
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
27 mars 2012
-
Messages postés
5
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
27 mars 2012
-
Bonjour a tous,
Voila je solicite votre aide car, après moult recherche sur le Web, je n'arrive toujours pas a faire fonctionner correctement ma procedure stocké.
Je voudrais qui le nom du champ de ma requete soit une variable prise en argument.

CREATE PROCEDURE insertDate
(
@dateActuelle datetime,
@monChamp varchar(2),
@idFac varchar(50)
)
AS
BEGIN
update FAC set @monChamp @dateActuelle WHERE idFac @idFac
END
GO


@insertDate étant un champs ma table FAC.
La requete est correcte car lorsque je remple "@monChamp " par le nom d'un champs de ma table en "dur", cela fonctionne très bien.

Merci d'avance

3 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
salut, il faut passer par une variable intermédiaire :

CREATE PROCEDURE insertDate
(
@dateActuelle datetime,
@monChamp varchar(2),
@idFac varchar(50)
)
AS
BEGIN
declare @requete varchar(MAX);
set @requete='update FAC set '+ @monChamp +' = ' + @dateActuelle + ' WHERE idFac = ' +@idFac

exec(@requete)
END


BasicInstinct
Messages postés
5
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
27 mars 2012

"@monChamp étant un champs de ma table FAC.*
Messages postés
5
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
27 mars 2012

Bonjour BasicInstinct,

Je te remerci pour ta reponse, ma procédure stocké marche parfaitement maintenant!
Bonne journée