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 :

une clé auto incrémente


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut une clé auto incrémente
    bonjour

    je veut crée une table (intervention) qui contien une clé auto incrément

    cette clé est composé en 2 partie, un numéro d'ordre et la l'anné courante

    exemple 123/2008
    124/2008

    et pour ce la j'ai crée une requette mais elle fonctionne pas bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE inter
     
    (id_i   integer IDENTITY(1,1) NOT NULL,
     
    cod_i  as id_i + '-'+CAST(year(getdate()),
     
    date_i datetime,
     
    typ_rép varchar(10),
     
    CONSTRAINT ver_cod_i PRIMARY KEY(id_i))
    le problème elle m'affiche cette erreur

    Server: Msg 170, Level 15, State 1, Line 7
    Line 7: Incorrect syntax near 'datetime'.

  2. #2
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 210
    Billets dans le blog
    16
    Par défaut
    Dans
    cod_i as id_i + '-'+CAST(year(getdate()),
    les parenthèses ne sont pas balancées.

    Essayez quelque chose comme :
    cod_i as id_i + '-'+CAST(year(getdate()) as integer),
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    merci

    elle marche mais pas comme je veut.il affiche comme ça le code

    1 2009
    2 2010
    3 2011
    .....
    ....
    ....
    etc
    ça veut dir la date est auto incrémente
    mon code il faut etre comme ça
    1 1-2008
    2 2-2008
    3 3-2008
    ....
    ...
    ...
    etc
    donc le numéro d'ordre + l'année

  4. #4
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 210
    Billets dans le blog
    16
    Par défaut
    Dans l'expression
    cod_i as id_i + '-'+CAST(year(getdate()) as integer)
    l'opérateur "+" est l'opérateur d'addition arithmétique.

    Pour qu'il devienne l'opérateur de concaténation de chaînes, il faudrait de préférence utiliser une opération qui ressemble à ceci :
    CAST (id_i as Varchar(5)) + '-' + CAST(year(getdate()) as Char(4))
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    elle marche trés bien et je vous remercie beacoup

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

Discussions similaires

  1. Oracle 10g - Définir une colonne auto-incrémentée
    Par david71 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/01/2008, 16h40
  2. Qu'est-ce qu'une clef auto-incrémentable?
    Par Milyshyn76 dans le forum Modélisation
    Réponses: 4
    Dernier message: 28/11/2007, 21h26
  3. [MySQL] récupérer une valeur auto incrémentée
    Par tonton51 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2007, 15h23
  4. Réinitialisation d'une clé auto incrémentée
    Par Linio dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/06/2007, 21h21
  5. Longueur d'une clé auto-incrémentée
    Par licorne dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/06/2007, 09h05

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