Comment preparer un script qui fait le remplissage des données

caspertinie Messages postés 12 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 25 août 2011 - 1 sept. 2010 à 13:26
caspertinie Messages postés 12 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 25 août 2011 - 1 sept. 2010 à 17:33
vb.net /// sql server/// 
bonjour;
je suis entrain de réaliser un projet en asp2008 et Sql Server 2005,le problème que j'ai c'est:
j'ai un champs "derniere Année de scolarité" dans une table de type datetime je veux changer le type de ce champs en integer pour garder seulement les années,donc comment je peux preparer un script qui recupere les données de ce champs et qui modifié le type de champs et ensuite le rempli par les années .

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 sept. 2010 à 14:45
Salut

Bien que tu soies sur un forum dédié au VB, je trouve un peu sévère de changer ce type de champ alors qu'il y a des fonctions qui permette de filtrer l'année - en VB, la fonction Year(laDate) renvoie l'année d'une date.
Ce champ, sous forme de date, ne te rendra t-il pas servir un jour pour y stocker ... le dernier jour de scolarité ? on ne sait jamais, ça pourrait servir.

Pour modifier le type de ton champ, je te préconise deux choix :
- Manuel et, à mon avis plus rapide :[list][*] Tu crées un nouveau champ temporairement dans ta table avec le type Integer
[*] Tu vas dans l'éditeur SQL de ta table et tu tentes ce genre de SQL :
    Update maTable
    Set Champ_Temporaire = Year(ChampDate)

[*] Une fois que c'est fait, tu détruis ta colonne/champ au format Date et tu renommes le champ temporaire avec le nom de l'ancien champ/list
- Script :
Il va falloir :[list][*] Créer une nouvelle table avec les mêmes noms de champ, sauf celui que tu veux modifier
[*] Créer un script lisant chaque donnée de l'ancienne table, appliquant la fonction Year sur ton champ Date, puis réécrire le tout dans la nouvelle table
[*] Supprimer l'ancienne table (ou la renommer)
[*] Renommer la nouvelle table sous le nom de l'ancienne./listPour cette dernière tâche automatisée, tu peux aussi appliquer la méthode manuelle avec AlterDatabase sous SQL (me souviens plus de l'orthographe exacte de cette commande)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
caspertinie Messages postés 12 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 25 août 2011
1 sept. 2010 à 17:33
Merçi bcp j'ai appliqué cette methode et elle marche très bien
merçi encore
0
Rejoignez-nous