Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ajout de champs dans une table de sql server [ Base de données / SQL Server ] (gargourifahmi)

mardi 21 novembre 2006 à 23:58:01 | ajout de champs dans une table de sql server

gargourifahmi

Salut, Je suis en train d'utiliser la table Customers de sql server. J'ai ajouté des champs a cette table afin de l'adapter a mes besoins. Le probleme est lorsque je deplace mon application a un autre pc je doit réajouter ces champs la. Est ce qu'il y a une méthode qui me permet d'ajouter ces champs automatiquement si ils ne se trouvent dans la table. Aidez moi SVP,c'est trés urgent.

vendredi 1 décembre 2006 à 15:30:20 | Re : ajout de champs dans une table de sql server

nbaduraux

Membre Club

Ma méthode pour répondre à ce genre de problème :

Tout d'abord, je teste si la colonne désirée existe dans la table.
Pour cela je récupère le nombre d'occurrences de cette colonne (1 si elle exise, sinon 0)  dans la table système syscolumns, pour la table Customers, grâce à la requête suivante :

    SELECT count(*) FROM syscolumns WHERE name='NOM COLONNE'
    AND id = (SELECT id FROM sysobjects 
              WHERE name='Customers' AND type='U')

Note : je récupère l'id de la table Customers dans sysobjects (le type 'U' est celui des Users Datatables ;-) pour ne compter que les colonnes correspondant à cette dernière.

Si le résultat est 1, la colonne existe déjà.
Si le résultat est 0, il suffit de la créer en exécutant une nouvelle requete du genre :

    ALTER TABLE [Customers ] ADD [NOM COLONNE] [int] NULL


Pour illustration : mes deux fonctions VB2005 pour cet exemple :

Public Function TesterSiLaColonneExiste( ByVal psNomColonne As String , _
                                                                          ByVal psNomTable As String , _
                                                                          ByVal poConn As SqlClient.SqlConnection)
                                                                         
As Boolean
   
If poConn Is Nothing Then Return False
   
Dim sqlCmd As New SqlClient.SqlCommand( _
       
"SELECT count(*) FROM syscolumns WHERE name='" & psNomColonne & "' " & _
        "AND id = (SELECT id FROM sysobjects " & _
                           "WHERE name='"
& psNomTable & "' AND type='U')" , poConn)
   
   
If CType (sqlCmd.ExecuteScalar(), Integer ) = 0 Then
              Return False
   
Else : Return True
   
End If
End Function

Public Function AjouterUneColonneEntier( ByVal psNomColonne As String , _
                                                                             ByVal psNomTable As String , _
                                                                             ByVal poConn As SqlClient.SqlConnection)
                                                                             As Boolean
     If poConn Is Nothing Then Return False
     Dim sqlCmd As New SqlClient.SqlCommand( _
     "ALTER TABLE [" & psNomTable & "] ADD [" & psNomColonne & "] [int] NULL " ,  _
      poConn)

     If
sqlCmd.ExecuteNonQuery > 0 Then     'la requête renvoie 1 si la colonne est bien créée
               Return True
     Else : Return False
     End If
End Function

vendredi 1 décembre 2006 à 15:35:09 | Re : ajout de champs dans une table de sql server

nbaduraux

Membre Club

Désolée pour la mise en page des fonctions : ça n'a pas pris mes modifications de polices. A copier - coller dans un éditeur de texte pour plus de clarté :-((


vendredi 1 décembre 2006 à 19:43:27 | Re : ajout de champs dans une table de sql server

gargourifahmi

merci beaucoup nbaduraux pour votre aide.



Cette discussion est classé dans : table, sql, server, champs, ajout


Répondre à ce message

Sujets en rapport avec ce message

multitable access & sql server [ par Rahan ] Bonjour a tousJ ai 2 bdd : access & sql server et j y accede via dsn source odbc en utilisant ADOJ aimerais faire une requete genre :"insert into tabl Ajout de données dans une base SQL server depuis vb6 [ par rastataou ] Salut,je voudrais ajouter une ligne de données a une base SQL server.j'arrive a me connecter correctement et a ajouter grace une requete (INSERT INTO gros pb sql [ par vish ] salut a tous j'ai un table sous sql 2000. mon pb c'est que cette table contient des doublons. comment puis le faire en sachant que je suis sensé avoir Nom des Tables et Champs via SQL et/ou VB6 [ par BSide ] Bonjour,pouvez-vous me dire :1) comment récupérer le nom d'une Table et d'un Champ dans une BD ?2) comment ajouter un champ à une table (create field sql server et table dynamique [ par kmikaz ] salut c'est kmikazj'ai un petit problem.Je developpe en ce moment un soft de transfert de data via internet et j'ai un petit blem quant à la possiblit Pb de rafraichissement ADO URGENT!!!!!!!!!!!!! [ par Stephle ] Slt tt le mondeQuelqu'un pourrait-il me dire quelle erreur il y a dans le source suivant quant au rafraichissement du pointeur de table.En effet, quan Requête SQL d'ajout de Table [ par Duanra ] DuanraPetit problème, pas trop méchant, mais qui devient vraiment lourd...Je veux créer une nouvelle Table dans ma base en utilisant une requête SQL.. Ajout d'une donnée dans un des champs d'une table access97 [ par sandrinenj ] Bonjour à tous et à toutes.Je viens de découvrir par hasard ce site super.Je suis novice dans la programmation VIsual Basic.Développant actuellement u Lier table sql server/access [ par far78 ] Je lie 3 tables dans Access à SQL Server en automatique: 'suppression de la table liéeDoCmd.DeleteObject acTable, "APPELS"'liaison de la table AppelsD sql pour acces [ par g_drouet ] Bonjour,j'ai besoin d'un petit coup de main:j'ai une table valeur avec les champs mini, maxi, a,b,cdans un formulaire connecté à une autre table j'ai


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,856 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.