2009-07-22 5 views
2

J'ai un champ de code postal dans une base de données que je viens de prendre en charge. Auparavant, il était défini comme un champ numérique avec une précision de 18, mais j'essaie de le convertir en varchar (10).comment puis-je changer un champ dans ma base de données SQL de numeric (18) à varchar (10)

J'ai besoin de faire cette modification parce que les champs linq arrivent en décimal et causent des problèmes et je veux changer les champs linq pour être simplement des chaînes.

J'ai essayé dans le gestionnaire d'entreprise du serveur SQL mais je reçois cette erreur, en disant:

que la table devra être abandonné et recréée. vous avez apporté des modifications à une table qui ne peut pas être recréée ou activez l'option pour empêcher l'enregistrement des modifications nécessitant une table de recréation

Des suggestions?

Répondre

1

Utilisez-vous MS-SQL 2008? Les modifications nécessitant la reconstruction de la table sont bloquées par défaut.

Cliquez sur Outils-> Options, puis sur Designers. Décochez "Empêcher les modifications nécessitant une recréation de table".

Ensuite, vous pouvez changer votre colonne en utilisant le concepteur.

Captures d'écran sur la façon de le faire:

http://pragmaticworks.com/community/blogs/brianknight/archive/2008/06/04/sql-server-2008-designer-behavior-change-saving-changes-not-permitted.aspx

+0

oui, je suis en 2008. . Je vais vous donner un coup de feu – leora

2

pour activer cette option dans le studio de gestion de SQL décocher l'option suivante ...

Outils/Options/concepteurs/Tableau et Base de données concepteurs/Prévenir d'enregistrer les modifications qui nécessitent la recréation de table

Vous pouvez également exécutez une instruction alter pour modifier votre type de données (à condition que toutes vos données tiennent dans une colonne varchar (10)).

ALTER TABLE MyTable 
    ALTER COLUMN MyZipCodeColumn VARCHAR(10) 
Questions connexes