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 :

Column or parameter #1: Cannot specify a column width on data type int.


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 158
    Par défaut Column or parameter #1: Cannot specify a column width on data type int.
    Bonjour à tous,
    j'essaie de créer une table avec MS SQL Server 2000 . Lorsque j'exécute ma requête, le SGBD me fournit le message d'erreur suivant :

    Server: Msg 2716, Level 16, State 1, Line 1
    Column or parameter #1: Cannot specify a column width on data type int.

    d'après certaines sources, je dépasserais la longeur maximale du format int, personnellement je ne comprends pas très bien. Si quelqu'un pouvait me donner un petit coup de main, ça serait super sympa.
    Bien à vous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    create table nom (
    nom_id int (4)Not Null,
    nom varchar(30),
    Ip varchar(30),
    Reboot datetime,
    ServicePack varchar(60),
    OsVersion int (30),
    OsName varchar (60),
    FreeSpace int (60),
    CONSTRAINT PK_section PRIMARY KEY (nom_id),
    )

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,Avec le type int il ne faut préciser de nombre de chiffres significatifs.
    Le bon script est donc:

    CREATE TABLE nom (
    nom_id int NOT NULL,
    nom varchar(30),
    Ip varchar(30),
    Reboot datetime,
    ServicePack varchar(60),
    OsVersion int ,
    OsName varchar (60),
    FreeSpace int ,
    CONSTRAINT PK_section PRIMARY KEY (nom_id),
    )

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par momoh Voir le message
    Bonjour à tous,
    j'essaie de créer une table avec MS SQL Server 2000 . Lorsque j'exécute ma requête, le SGBD me fournit le message d'erreur suivant :

    Server: Msg 2716, Level 16, State 1, Line 1
    Column or parameter #1: Cannot specify a column width on data type int.
    Ben oui, ça veut dire quoi INT(4)?
    soit c'est INT, soit c'est NUMERIC(4)

  4. #4
    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
    Par défaut
    Bonjour,

    Effectivement sous SQL Server vous ne pouvez pas spécifier la mantisse d'une colonne de type entier.
    En revanche, il existe plusieurs types de données pour stocker des entiers.
    A vous de choisir le bon en fonction de vos besoins :

    BIGINT : De -2^63 (-9 223 372 036 854 775 808) à 2^63-1 (9 223 372 036 854 775 807), stocké sur 8 octets

    INT : De -2^31 (-2 147 483 648) à 2^31-1 (2 147 483 647), stocké sur 4 octets

    SMALLINT : De -2^15 (-32 768) à 2^15-1 (32 767), stocké sur 2 octets

    TINYINT : De 0 à 255, stocké sur 1 octet.

    @++

  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
    Par défaut
    Citation Envoyé par cmako
    soit c'est INT, soit c'est NUMERIC(4)
    A la différence que dans un type NUMERIC vous pouvez aussi stocker des décimaux, et que les tailles de stockage ne sont pas les mêmes :

    - Précision comprise entre 1 et 9 : 5 octets
    - Précision comprise entre 10 et 19 : 9 octets
    - Précision comprise entre 20 et 28 : 13 octets
    - Précision comprise entre 29 et 38 : 17 octets

    Pour stocker des entiers de 4 chiffres, il est donc moins coûteux d'utiliser le type SMALLINT ...

    @++

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 158
    Par défaut
    Merci pour votre aide, grâce à vos explications j'ai résolu le problème

    Un grand merci à vous tous

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

Discussions similaires

  1. Erreur "entity for parameter binding cannot be null"
    Par angel.success dans le forum Java EE
    Réponses: 22
    Dernier message: 25/05/2012, 19h33
  2. Réponses: 4
    Dernier message: 22/02/2011, 17h00
  3. Réponses: 2
    Dernier message: 22/02/2011, 10h59
  4. Réponses: 1
    Dernier message: 03/03/2009, 14h44
  5. Réponses: 5
    Dernier message: 16/09/2007, 19h17

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