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:
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 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME= 'maTable'
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
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
ce code me retourne le resultat suivant:
donc j'ai compris que l'instruction select @colonne from table ne rends pas le contenu de la colonne mais le nom de la colonnecolonne1
colonne1
colonne1
colonne1
colonne1
colonne1
colonne1
colonne2
colonne2
colonne2
colonne2
colonne2
colonne2
colonne2
colonne3
colonne3
colonne3
colonne3
colonne3
colonne3
colonne3
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!
Partager