IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

problème avec l'auto-incrementation


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut problème avec l'auto-incrementation
    Bonjour,

    J'ai un problème avec ma requete SQL quand je lance mon programme vb.net.
    Ma fonction vb.net me sert a ajouter une station dans ma base de données.
    Dans ma base de données j'ai les champs :

    ID_groupe
    ID_station(auto_increment)
    Nom_station
    Actif(boolean - vrai/faux)
    DEBT - pour date de création
    FINT - pour date de fin d'utilisation de la station

    Pour effectuer ma requete je fais ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Try
                If Form_Pc.ComboBox_gr.Text = "PAS22" Then
                    num_gr = 1
                    requete = "INSERT INTO liste_station (ID_groupe, Nom_station, actif, DEBT, FINT) VALUES ('" & num_gr & "', '" & Form_Pc.TextBox_nouv_pc.Text & "', 'TRUE','" & jour & "', NULL)"
     
                    nbRows = connection.GetNbRows(requete)
                    connection.CloseConnection()
                End If
            Catch ex As SqlException
                MessageBox.Show(ex.Message, "ERREUR1", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
    J'ai vu que si on avait un champs auto incrementé dans notre base qu'il n'y avait pas besoin de le mettre le champ dans la requete.

    Le soucis que j'ai c'est qu'en faisant ma requete j'ai une erreur qui me dit :

    Impossible d'inserer la valeur NULL dans la colone 'ID_station', table 'DATABASE_FLEX.dbo.liste_station'.Cette colonne n'accepte pas les valeurs NULL. Echec de INSERT.
    L'instruction a été arrêtée.
    J'ai regardé sur SQL-serveur 2005 comment faire pour pouvoir mettre des valeur NULL, mais je trouve pas, si quelqu'un peut me données un coup de main SVP.

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    A priori vu l'erreur que vous avez, c'est que votre colonne n'a pas la propriété de compteur auto-incrémenté.
    Pour le vérifier, si la base de données est SQL Server 2005 ou 2008 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT T.name AS nomTable,
    		C.name AS nomColonne,
    		CASE C.is_identity
    			WHEN 1 THEN 'OUI'
    			WHEN 0 THEN 'NON'
    		END AS EstAutoIncrementee
    FROM sys.tables AS T
    JOIN sys.columns AS C
    	ON T.object_id = C.object_id
    WHERE T.name = 'maTable'
    J'ai vu que si on avait un champs auto incrementé dans notre base qu'il n'y avait pas besoin de le mettre le champ dans la requete.
    Je vous le confirme.

    D'autre part vous auriez tout intérêt à écrire une procédure stockée qui réalise l'INSERT à la place de votre application, pour les raisons que vous trouverez dans le billet que j'ai écrit à ce sujet.

    @++

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    bonjour elsuket et merci de ta reponse.

    J'ai essayé ce que tu m'as dit et effectivement le champs de ma base dans SQL serveur n'est pas auto-incrementé.
    Ma base de données est une importation d'une BDD access et dans cette base access mon champs est auto-incrementer.

    Pourquoi cette option n'as pas été copier dans la BDD SQL serveur?
    Et comment je peux faire pour rendre mon champ auto-incrementé?

  4. #4
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    C'est tout bon j'ai réussi a trouvé comment on fait pour mettre l'auto incrementation dans SQL serveur.

    tout est dit sur ce lien : cliquez ici

    Encore merci pour ta réponse Elsuket

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Avec plaisir mais attention tout de même à ce genre de manœuvre, qui recrée la table

    Un peu de lecture sur le passage d'Access à SQL Server

    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mysqli inserre deux fois la même chose avec id auto increment diffents
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/02/2009, 08h49
  2. problème de numero auto-increment
    Par crabe71 dans le forum Développement
    Réponses: 2
    Dernier message: 29/07/2008, 15h59
  3. Problème avec height: auto;
    Par webrider dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 25/07/2007, 17h16
  4. probleme avec une auto-incremente
    Par tchimou dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h28
  5. Problème avec Overflow:auto sur Firefox.
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/05/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo