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 :

[debutant]nvarchar(4000) est le maximum ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Par défaut [debutant]nvarchar(4000) est le maximum ?
    Bonjour,

    Je suis debutant et je tiens a le preciser car je pense que mes questions vont vous paraitre bete !!

    Je bosse avec visual studio 2005 et ms sql server 2005.

    Alors voila, j'ai une enorme procedure stockee dont je ne suis pas l'auteur et qui plante !!

    Je pense avoir trouve pourquoi mais j'aimerais avoir votre avis !

    cette procedure stockee prends quelques parametrers qui sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @langue varchar(2),
    @PositionsList nvarchar(4000)
    la langue correspond a la langue de l'utilisateur et pas de probleme pour ce parametre (EN, FR)!
    @PositionList correspond a une liste de postions composées de 4 chiffres separees par des virgules (0123, 9858, 5896, ...)!

    cette liste est obtenues via une requete sql qui renvoit donc ces valeurs!
    ces valeurs sont stockées dans un type generic (dotnet)

    ensuite cette liste est parcourrue pour ajouter la virgule et ensutie on appele la procedure stockee en question qui plante !

    voila mes questions sont donc celles ci:

    - nvarchar(4000) signifie bien qu'on accepte 4000 caracteres MAXIMUM !?
    - Est ce la valeur max qu'on puisse stocker dans un nvarchar !?
    - que se passe t il si on passe plus de 4000 caracteres !?

    Pour resumer je pense que ma store procedure plante car je recupere plus de 2000 positions composé de 4 caracteress donc un total de plus de 8000 caracteres en ajoutant les virgules !

    Voila
    Je vous remercie pour vos eclaircissement
    Christophe

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 010
    Billets dans le blog
    6
    Par défaut
    - nvarchar(4000) signifie bien qu'on accepte 4000 caracteres MAXIMUM !?
    OUI

    - Est ce la valeur max qu'on puisse stocker dans un nvarchar !?
    en version 2000 oui

    - que se passe t il si on passe plus de 4000 caracteres !?
    ça plante

    Mais les bases de données relationnelles n'étant pas faites pour faire du traitement de texte, il semble à priori que la façon de faire soit totalement inadaptée... En effet passer en argument une liste de valeur est une abhération dans un monde ou le standard est la table.
    Il suffirait donc d'injecter vos valeurs dans uen table pour qu'il n'y ait plus aucune limite d'aucune sorte. Cela peut être fait de multiples façons, y compris par une requête basique du genre INSERT INTO ...

    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/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Bonjour,

    je te remercie pour ton information.

    bonne journée
    Christophe

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

Discussions similaires

  1. [MySQL] Test si la valeur d'un champ est au maximum
    Par pasb71 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/10/2013, 12h42
  2. [Debutant] mon code est-il robuste ?
    Par Mathusalem dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/07/2008, 00h22
  3. Réponses: 2
    Dernier message: 15/01/2008, 09h37
  4. [DEBUTANT] Qu'est-ce qu'une contrainte applicative ?
    Par Invité dans le forum Débuter
    Réponses: 2
    Dernier message: 16/02/2005, 14h18
  5. [Debutant(e)]Eclips est un EDI
    Par Hakkou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/05/2004, 22h19

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