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 :

grand nombre de champ dans une table


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Points : 216
    Points
    216
    Par défaut grand nombre de champ dans une table
    Bonjour,

    Je dois ajouter dans une table SQL Server un nombre important de champs (environ 200 sachant qu'il y en a déjà une cinquantaine). Je précise que je n'ai pas d'autre solution que d'ajouter des champs dans cette table.

    J'ai donc fait un ALTER TABLE ADD ... avec mes 200 champs.
    Voici le Warning que j'ai obtenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Warning: The table 'PROFILE' has been created but its maximum row size (35155) exceeds the maximum 
    number of bytes per row (8060). 
     
    INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.
    Ce n'est pas très rassurant. Est-ce que vous savez un peu plus précisément quelles sont les conséquences ? Sachant que la majorité des champs de cette table est composé de varchar(255), et que relativement peu de lignes renseigneront les champs que j'ai ajouté par rapport au nombre total de lignes.

    Merci

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    la taille maximum d'une ligne est d'environ 8060 octets. C'est la taille de la page sur SQL Server, et une ligne ne peut pas dépasser une page.

    Si tu as vraiment besoin d'ajouter ces colonnes (il y a peut-être de la modélisation à faire à ce stade), tu peux par exemple partitionner verticalement, cad créer plusieurs tables ayant la même clé primaire, et les joindre dans une vue pour consultation et/ou modification avec un trigger INSTEAD OF.

    Tu peux aussi ignorer le warning, auquel cas tes INSERT qui feront plus de 8060 caractères vont générer une erreur.

  3. #3
    Membre actif
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    OK, merci bien pour l'info

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/05/2010, 16h29
  2. Bloquer sur le nombre de champs dans une table
    Par fredsete dans le forum Modélisation
    Réponses: 4
    Dernier message: 13/10/2008, 12h01
  3. MySQL : Best Practice : Nombre de champ dans une table
    Par Ziquet dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/05/2008, 16h18
  4. recherche du nombre d'occurences dans une table
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/01/2004, 20h03
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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