utilisation de COLUMN_NAME
Bonjour,
j'aimerai mettre a jour les champs d'une table qui contien une 100n de colonnes. j'ai donc utilisé une idée trouvée dans la FAQ celle de parcourir les noms de colonne d'une table avec le code suivant:
Code:
1 2 3
| SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME= 'maTable' |
donc le but est de parcourir matable, et de mettre a jour les champs des colonnes avec une boucle. voici le code TSQL:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| DECLARE @colonne varchar(5)
DECLARE lineCursor CURSOR local FOR
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME= 'punktrettung'
OPEN linecursor
FETCH next FROM linecursor INTO @colonne
WHILE @@fetch_status = 0
BEGIN
select @colonne from punktrettung
FETCH next FROM linecursor INTO @colonne
END
CLOSE linecursor |
Vous verrez qu'au debut je ne fait qu'un SELECT pour voir si je parcour bien la table en question et tout les champs de colonnes pour etre sur que la mis a jour va marcher apres. mais ca me donne un resultat bizar :(
ce code me retourne le resultat suivant:
Citation:
colonne1
colonne1
colonne1
colonne1
colonne1
colonne1
colonne1
colonne2
colonne2
colonne2
colonne2
colonne2
colonne2
colonne2
colonne3
colonne3
colonne3
colonne3
colonne3
colonne3
colonne3
donc j'ai compris que l'instruction select @colonne from table ne rends pas le contenu de la colonne mais le nom de la colonne
j'ai essayé em mettant [@colonne] mais ca donne une erreur.
quelqu'un peut me dire comment faire passer la valeur de @colonne pour qu'elle soit prise en charge par le code comme nom de colonne et pas un simple texte a afficher ??
merci de votre aide!