Je cherche une solution pour résoudre le problème suivant :
Pouvoir prendre en compte la valeur d'une colonne d'une table dont le nom
est paramétrable.
Pour le réaliser, j'ai tenté de l'implémenter à partir d'un code Sql
dynamique, mais sans y parvenir.
J'obtiens l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1
Échec de la conversion de la valeur varchar « COL01 » en type de données
int.
Je ne sais si l'utilisation de Sql dynamique est le bon choix dans ce cas de
figure.
Ci-dessous le contexte :
Pour l'exemple, j'ai créé une table temporaire, de la structure ci-dessous :
L'exécution de ce code provoque l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1
Échec de la conversion de la valeur varchar « COL01 » en type de données
int.
Le but que je cherche à atteindre est de passer en paramètre le nom de la
colonne : COL01, COL02, COL03, COL04, afin de prendre en compte la valeur
correspondant la colonne souhaitée.
Voyez-vous une erreur dans ce code ?
La solution à ce problème est t'elle autour du sql dynamique ou autre
méthode ?
SET @Str_Sql = N'Select @P_Val = Max (' + @Nam_Data + ' ) From #MyTable Where CLE = ''' + CAST(@Var_Cle AS VARCHAR(32))+ ''''; SET @Str_Para = N'@P_Val Int Output';
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
ML a écrit :
Bonjour,
Je cherche une solution pour résoudre le problème suivant : Pouvoir prendre en compte la valeur d'une colonne d'une table dont le nom est paramétrable.
Pour le réaliser, j'ai tenté de l'implémenter à partir d'un code Sql dynamique, mais sans y parvenir. J'obtiens l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1 Échec de la conversion de la valeur varchar « COL01 » en type de données int.
Je ne sais si l'utilisation de Sql dynamique est le bon choix dans ce cas de figure.
Ci-dessous le contexte :
Pour l'exemple, j'ai créé une table temporaire, de la structure ci-dessous :
L'exécution de ce code provoque l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1 Échec de la conversion de la valeur varchar « COL01 » en type de données int.
Le but que je cherche à atteindre est de passer en paramètre le nom de la colonne : COL01, COL02, COL03, COL04, afin de prendre en compte la valeur correspondant la colonne souhaitée.
Voyez-vous une erreur dans ce code ?
La solution à ce problème est t'elle autour du sql dynamique ou autre méthode ?
SET @Str_Sql = N'Select @P_Val = Max (' + @Nam_Data + ' ) From #MyTable
Where CLE = ''' + CAST(@Var_Cle AS VARCHAR(32))+ '''';
SET @Str_Para = N'@P_Val Int Output';
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
ML a écrit :
Bonjour,
Je cherche une solution pour résoudre le problème suivant :
Pouvoir prendre en compte la valeur d'une colonne d'une table dont le nom
est paramétrable.
Pour le réaliser, j'ai tenté de l'implémenter à partir d'un code Sql
dynamique, mais sans y parvenir.
J'obtiens l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1
Échec de la conversion de la valeur varchar « COL01 » en type de données
int.
Je ne sais si l'utilisation de Sql dynamique est le bon choix dans ce cas de
figure.
Ci-dessous le contexte :
Pour l'exemple, j'ai créé une table temporaire, de la structure ci-dessous :
L'exécution de ce code provoque l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1
Échec de la conversion de la valeur varchar « COL01 » en type de données
int.
Le but que je cherche à atteindre est de passer en paramètre le nom de la
colonne : COL01, COL02, COL03, COL04, afin de prendre en compte la valeur
correspondant la colonne souhaitée.
Voyez-vous une erreur dans ce code ?
La solution à ce problème est t'elle autour du sql dynamique ou autre
méthode ?
SET @Str_Sql = N'Select @P_Val = Max (' + @Nam_Data + ' ) From #MyTable Where CLE = ''' + CAST(@Var_Cle AS VARCHAR(32))+ ''''; SET @Str_Para = N'@P_Val Int Output';
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
ML a écrit :
Bonjour,
Je cherche une solution pour résoudre le problème suivant : Pouvoir prendre en compte la valeur d'une colonne d'une table dont le nom est paramétrable.
Pour le réaliser, j'ai tenté de l'implémenter à partir d'un code Sql dynamique, mais sans y parvenir. J'obtiens l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1 Échec de la conversion de la valeur varchar « COL01 » en type de données int.
Je ne sais si l'utilisation de Sql dynamique est le bon choix dans ce cas de figure.
Ci-dessous le contexte :
Pour l'exemple, j'ai créé une table temporaire, de la structure ci-dessous :
L'exécution de ce code provoque l'erreur suivante :
Serveur : Msg 245, Niveau 16, État 1, Ligne 1 Échec de la conversion de la valeur varchar « COL01 » en type de données int.
Le but que je cherche à atteindre est de passer en paramètre le nom de la colonne : COL01, COL02, COL03, COL04, afin de prendre en compte la valeur correspondant la colonne souhaitée.
Voyez-vous une erreur dans ce code ?
La solution à ce problème est t'elle autour du sql dynamique ou autre méthode ?