Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

créer un champ nvarchar sans fixer une longueur ?

6 réponses
Avatar
olivier
Bonjour

Peut-on créer un champ de type nvarchar sans fixer spécifiquement une
longueur ?

actuellement, je fais toujours :

libelle [nchar](200)
mais si je rentre 201 , ca plante.
par contre, je ne peux pas interdire de saisir 201 caractères.

Comment faites-vous ?

merci
olivier

6 réponses

Avatar
Fred BROUARD
olivier a écrit :
Bonjour

Peut-on créer un champ de type nvarchar sans fixer spécifiquement une
longueur ?

actuellement, je fais toujours :

libelle [nchar](200)
mais si je rentre 201 , ca plante.
par contre, je ne peux pas interdire de saisir 201 caractères.

Comment faites-vous ?



nvarchar(max)

C'est une idiotie que de faire des colonnes extensibles à l'infini car
cela oblige à manipuler des Blobs qui sont ni indexables, ni requêtable.
Vous devez fixer une longeur (la plus courte possible) et vous y tebir.
Sachez que beaucoup de données sont normalisées aux niveaux des
longueurs. Ainsi les lignes d'adresse de la lposte ne doivent pas
dépasser 38 caractères.

de plus pourquoi utiliser vous du NATIONAL ? Cela coûte deux fois plus
cher dans les traitements. Seul cas vraiment important d'utilasation du
NATIONAL CHAR/VARCHAR c'est si votre base de données est relatives à une
applications internationale utilisées simultanément (le même base) par
des langues d'alphabets différents. Exemple dans la même base de données
cetaines lignes en cyrilliques, d'autre en arabe, hébreu, latin...)

A +


merci
olivier






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Jean BONBEUR
> Ainsi les lignes d'adresse de la lposte ne doivent pas dépasser 38
caractères.



Curiosité... c'est une information qui vient d'ou ? Saint Quentin ?
Montpellier ?

Cordialement,

Frédéric Didier
Avatar
Fred BROUARD
Jean BONBEUR a écrit :
Ainsi les lignes d'adresse de la lposte ne doivent pas dépasser 38
caractères.



Curiosité... c'est une information qui vient d'ou ? Saint Quentin ?
Montpellier ?



Lisez les papiers que j'écris...
http://sqlpro.developpez.com/cours/normes/

Renseignez vous aux bonnes sources !
http://www.laposte.fr/sna/rubrique.php3?id_rubrique‡

A +




Cordialement,

Frédéric Didier






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Jean BONBEUR
Merci pour ces infos, ça impose le respect :)
Avatar
Fred BROUARD
Jean BONBEUR a écrit :
Merci pour ces infos, ça impose le respect :)




La plupart des données sont nromalisées. Mais les gens l'ignorent. En
particulier les informaticiens...

Cela me permet de gagner de l'argent en conseil !!!

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Patrice
Bonjour,

Généralement c'est l'application cliente qui contraint la saisie (souvent
via une propriété MaxLength qui permet de limiter le nombre de caractères
acceptés dans une zone de saisie).

Il faudrait plutôt poser la question je pense dans un groupe concernant
l'outil de développement utilisé pour l'application cliente.

--
Patrice

"olivier" a écrit dans le message de news:

Bonjour

Peut-on créer un champ de type nvarchar sans fixer spécifiquement une
longueur ?

actuellement, je fais toujours :

libelle [nchar](200)
mais si je rentre 201 , ca plante.
par contre, je ne peux pas interdire de saisir 201 caractères.

Comment faites-vous ?

merci
olivier