Ok, donc vous avez changé la colonne du Numéro de type VARCHAR(5). Maintenant, vous avez besoin de mettre à jour le code postal champ à gauche-collier. Le SQL de le faire serait:
UPDATE MyTable
SET ZipCode = LPAD( ZipCode, 5, '0' );
Ce sera pavé de toutes les valeurs dans le code Postal de la colonne à 5 caractères, ajout de '0' sur la gauche.
Bien sûr, maintenant que vous avez toutes vos anciennes données fixes, vous devez vous assurer que votre toute nouvelle donnée est également complété par des zéros. Il y a plusieurs écoles de pensée sur la façon correcte de le faire:
Gérer dans la logique métier de l'application. Avantages: base de données indépendant de la solution, n'implique pas apprendre plus au sujet de la base de données. Inconvénients: doit être traitée partout qui écrit dans la base de données, dans toutes les applications.
Le manipuler avec une procédure stockée. Avantages: procédures Stockées imposer des règles d'entreprise pour tous les clients. Inconvénients: les procédures Stockées sont plus complexes que la simple INSERTION/mise à JOUR des énoncés, et non pas comme des portables dans les bases de données. Un nu-INSERTION/mise à JOUR peut encore insérer des non-nulle collier de données.
Manipuler avec un déclencheur. Avantages: travail pour les Procédures Stockées et nu INSERT/UPDATE. Inconvénients: Moins solution portable. Le plus lent de la solution. Les déclencheurs peuvent être durs pour obtenir le droit.
Dans ce cas, je voudrais y faire face au niveau de l'application (le cas échéant), et non pas le niveau de base de données. Après tout, pas tous les pays qui utilisent un 5-digit code Postal (pas même les etats-unis, notre zipcodes sont effectivement Zip+4+2: nnnnn-nnnn-nn) et certains permettent de lettres ainsi que des chiffres. Mieux vaut ne PAS essayer de forcer un format de données et d'accepter les données occasionnelles d'erreur, que d'empêcher quelqu'un d'entrer la valeur correcte, même si son format n'est pas du tout ce à quoi vous vous attendiez.