Comment faire pour modifier la longueur de la colonne de clé primaire dans SQL Server?

Je sais comment faire pour modifier la longueur d'une colonne, mais mon instruction SQL échoue parce que la colonne que je suis en train de changer est un PK, donc, je reçois le message d'erreur suivant:

Msg 5074, Niveau 16, État 1, Ligne 1
L'objet "PK_TableName' dépend de la colonne "PersonID'.

PersonID = PK.

J'ai lu Qu'est-ce que le sql pour modifier la longueur d'un champ d'une colonne de table dans sql server qui ne s'applique qu'aux non-PK colonnes.

J'ai essayé ceci:

ALTER TABLE table_name
ALTER COLUMN column_name <new datatype>
P. S. je ne veux pas supprimer ou de re-créer la table parce que la table contient des millions de lignes...
Je ne pense pas que vous avez un choix...
vous n'aurez pas besoin de supprimer la table, mais vous aurez besoin de déposer le pk contrainte avant de changer la colonne (et peut-être laisser tomber de référencement contraintes FK) qui vous permettent de recréer par la suite
Avez-vous préciser NOT NULL? Êtes-vous à la colonne plus grand (de type varchar(6) varchar(8)) ou plus petite (et vice-versa)? Vérifiez ce post stackoverflow.com/questions/11118568/...
Je suis en accord avec NDJ, pour autant que je suis conscient que vous devrez déposer le PK contrainte, modifier et réappliquez la contrainte.

OriginalL'auteur LearnByReading | 2015-05-20