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

Développement SQL Server Discussion :

Incrementer une colonne lié à une autre statique


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut Incrementer une colonne lié à une autre statique
    Bonsoir à tous,
    Je viens de construire une base de Données de GESTION COMERCIALE dans laquelle se trouve une table LIGNE_COMMANDES dont la clé (ID) est la combinaison des 2 colonnes commandes(clé étrangère de la table COMMANDES), et ligne qui est le numéro de la ligne commande. Je voudrais que cette dernière ligne s'auto-
    incremente alors que la 1ere (LIGNE_COMMANDES) ne change pas. Le probleme est que je ne sais pas m'y prendre. Vous avez une image de la TABLE en piece jointe. Prière de m'aider.
    Images attachées Images attachées  

  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 : 44
    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
    Par défaut
    Bonjour,

    Vous pouvez soit le faire par script, en spécifiant la clause IDENTITY :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE ligne_commande
    (
    	commande int NOT NULL
    	, ligne int NOT NULL IDENTITY
    	, article nvarchar(16)
    	, quantite smallint
    )
    Mais cela vous oblige à supprimer la table au préalable.

    Avec le concepteur de tables, vous pouvez aussi le faire :



    Mais notez que la table est supprimée puis recrée dans la foulée.
    Notez que vous ne pouvez avoir qu'une seule colonne de ce type par table.
    L'IdentityIncrement est le pas d'incrémentation, et le seed est la valeur de départ du compteur.
    Rien ne vous empêche, pour un int, de mettre le seed à la valeur minimale : -2147483648

    @++

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut
    Merci pour cette réponse, peut-etre que je me suis mal exprimé. Je voudrais que cette colonne ligne s’initialise à 1 et s’incrémente à chaque nouvelle commandes.C'est dire pour la commande N°165, la ligne parte de 0 à x ou x representerais le nombre de lignes de la commande, de même pour la commande N°166. Merci .

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Question sans doute idiote. En admettant que vous ayez trouvé comment faire cela et en imaginant maintenant les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Commande    Ligne          Data
    ----------- -------------- -----------
    165          1              XXX
    165          2              YYY
    165          3              ZZZ
    Quel étant devrions nous avoir si la ligne 165/2 est supprimée (erreur de saisie par exemple) et qu'une nouvelle est insérée :

    1) ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Commande    Ligne          Data
    ----------- -------------- -----------
    165          1              XXX
    165          3              ZZZ
    165          4              AAA
    2) cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Commande    Ligne          Data
    ----------- -------------- -----------
    165          1              XXX
    165          3              ZZZ
    165          2              AAA
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut
    Merci pour les reponses. Je crois que je n'ai pas été compris. Mais j'appliquerai la 1ere solution proposée. j'essayerai avec le temps de trouver une solution à cette equation.

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 4
    Dernier message: 05/05/2008, 15h16
  4. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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