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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
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!