J'ai une table avec une taille de colonne de clé primaire est définie à 50. En raison de certaines nouvelles exigences, je dois augmenter la taille à 255. Après la recherche en ligne, j'ai compris qu'il n'est pas possible de modifier une colonne si elle fait partie d'une contrainte de clé primaire. J'ai donc pris l'approche d'abandonner la contrainte, en modifiant la colonne et en rajoutant la contrainte. Mais, je rencontre toujours un petit problème, ma colonne d'origine est de type non nul et a un ensemble de valeurs par défaut, mais maintenant quand je tente l'instruction SQL suivante, je reçois une erreur « syntaxe incorrecte près DEFAULT »Modifier la taille de colonne de la clé primaire de table à 255
ALTER TABLE [tblLocation]
DROP CONSTRAINT [PK_tblLocation]
ALTER TABLE [tblLocation]
ALTER COLUMN Location VARCHAR(255) DEFAULT('New Location') NOT NULL
ALTER TABLE [tblLocation]
ADD
CONSTRAINT [PK_tblLocation] PRIMARY KEY CLUSTERED
(
[Location] ASC
)
Merci pour toute aide. Javid
Vous ** ne voulez pas ** avoir un 'VARCHAR (255)' comme clé de clustering - croyez-moi !! Lisez [article de blog de Kimberly Tripp] (http://www.sqlskills.com/BLOGS/KIMBERLY/post/Ever-increasing-clustering-key-the-Clustered-Index-Debateagain!.aspx) sur ce que devrait être une bonne clé de clustering be - un point est ** étroit ** - INT (4 octets) est génial, BIGINT (8 octets) est OK, GUID (16 octets) peut être tolérable, mais rien de plus - en particulier une colonne de ** largeur variable ** - est la folie. –
Très vrai, et j'espère qu'il peut le changer. Mais combien de postes de SO avez-vous vu cela (peut-être éventuellement) dire "Je sais que la structure est nulle, mais je ne peux pas le changer" ...? –
@Philip Kelley: trop - mais souvent je me demande si le gars ne peut vraiment pas changer la structure - ou s'il est trop paresseux pour le faire ..... de toute façon ... –