Bonjour ;
comment peut on modifier la valeur par défaut d'un champ pour le passer de NULL a NOT NULL,
j'ai bien essayer un truc du genre :
mais cela ne marche pas !Citation:
ALTER TABLE matable ALTER COLUMN macolumn INT NOT NULL
Version imprimable
Bonjour ;
comment peut on modifier la valeur par défaut d'un champ pour le passer de NULL a NOT NULL,
j'ai bien essayer un truc du genre :
mais cela ne marche pas !Citation:
ALTER TABLE matable ALTER COLUMN macolumn INT NOT NULL
Bonjour,
Ceci est normal si vous avez des valeurs NULL dans votre table.
Il faut d'abord mettre à jour ces valeurs et ensuite exécutez votre ordre DDL.
Exemple :
++Code:
1
2
3
4
5
6 UPDATE dbo.matable SET colonne = ISNULL(colonne,0); ALTER TABLE dbo.matable ALTER COLUMN colonne INT NOT NULL; GO
merci pour ta réponse, je viens d'essayer , j'ai eu un message d'erreur du
genre :
la colonne dont je veut modifier la valeur par défaut est une clé etrangère.Citation:
UPDATE statement conflicted with COLUMN FOREIGN KEY constraint 'FK__D_FC_pris__fk_pl__466C5FD2'. The conflict occurred in database 'formahpt', table 'D_FC_plan_dossier', column 'pk_plan_dossier'.
Bonjour,
Effectivement si la valeur de la clé étrangère n'existe pas dans la table référencée, cela ne peut pas fonctionner.
Si la cardinalité est de type 0,n, alors laissez la colonne NULLable.
Sinon vous devez :
- créer la valeur dans la table référencée,
- ajouter une contrainte de valeur par défaut qui est la valeur de la clé de la table référencée
- mettre à jour votre table comme vous l'a montré Mikedavem.
Pour ajouter la contrainte de valeur par défaut :
@++ ;)Code:
1
2 ALTER TABLE dbo.maTable ADD CONSTRAINT DF_maTable_maColonne DEFAULT (maValeur) FOR maColonne