SQL: ALTER COLONNE plus courte CHAR(n) type de
Je suis en train de travailler avec MS SQL SERVER 2003. Je veux modifier une colonne dans une de mes tables d'avoir moins de caractères dans les entrées. C'est identique à cette question: Modification d'une Colonne de Tableau à Accepter Plus de Caractères sauf pour le fait que je veux le moins de caractères au lieu de plus.
J'ai une colonne dans une de mes tables qui contient neuf chiffres des entrées. Un développeur qui étaient sur la table, à tort, définir la colonne de tenir à dix chiffres des entrées. J'ai besoin de changer le type de CHAR(10)
à CHAR(9)
.
En suivant les instructions à partir de la discussion ci-dessus, j'ai écrit la déclaration
ALTER TABLE MA_TABLE] ALTER COLUMN [MY_COLUMN] CHAR(9);
Renvoie le message d'erreur "la Ficelle ou des données binaires seront tronqués". Je vois que ma neuf chiffres cordes ont un espace annexé à faire de leur dix doigts.
Comment dois-je dire à SQL Server à jeter l'espace supplémentaire et convertir ma colonne de type CHAR(9) type?
OriginalL'auteur Daniel Allen Langdon | 2010-06-16
Vous devez vous connecter pour publier un commentaire.
Je pense que vous obtenez l'erreur, car il y a certaines valeurs dans le tableau sont exactement 10 caractères (sans espaces). Modifiant la table serait donc couper ces valeurs à la longueur de 9.
Ce n'est pas autorisé par défaut. Si il ne serait chaînes qui aurait certains espaces, il n'y aurait pas de problème avec ça.
Donc, si vous êtes ok avec la coupe de ces valeurs, ne
UPDATE MY_TABLE SET MY_COLUMN = LEFT(MY_COLUMN, 9)
d'abord, après que ne l'alter.
UPDATE
déclaration vous recommandons avant de lesALTER
déclaration rend le travail.étrange, mais ça fonctionne vraiment 🙂
OriginalL'auteur František Žiačik
Désactiver Avertissements Ansi avant de vous modifier votre table.
Méfiez-vous des données sera être tronqué si vous avez quelque chose de 10 caractères de long.
Modifier
Vérifier les longueurs avant de changer la longueur de la colonne.
OriginalL'auteur Lieven Keersmaekers
Ci-dessus 2 réponses ne fonctionne pas pour moi parce que j'avais une histoire de la table jointe à la table j'ai essayé de la modifier. C'est ce que j'ai fait:
OriginalL'auteur Joels Elf