[Sql Serveur]Autoriser l’enregistrement de modifications qui nécessitent une recréation de la table
Voila l’autre jour, je voulais ajouter une colonne dans une table qui contenait déjà des données.
Donc je rajoute ma colonne et j’enregistre, voilà ce que SQL Server Management Studio me répond :
Ok, vu que ce n’est pas moi qui est installé ce SQL je cherche où se trouve cette option et je trouve :
Puis
Donc une fois cette case décochée, je clique sur OK et je retente la sauvegarde de ma table :
Le message est le suivant :
table « Table_Exemple »
- Impossible de modifier la table.
Impossible d'insérer la valeur NULL dans la colonne 'toto',
table 'AdventureWorksLT.dbo.Tmp_Table_Exemple'.
Cette colonne n'accepte pas les valeurs NULL. Échec de INSERT.
L'instruction a été arrêtée.
Effectivement j’ai voulu insérer une colonne de type bit qui n’accepte pas les null et je n’ai pas mis de valeur par défaut. Donc je rectifie en spécifiant que je veux que cette colonne accepte les null (temporairement) et que si j’insère de nouvelles lignes sans spécifier la valeur de cette colonne on est 0 par défaut.
Je retente un enregistrement des modifications et c’est ok. Si je vais voir le contenu de ma table.
Bon maintenant je vais mettre toute les lignes à la valeur par défaut.
UPDATE [AdventureWorksLT].[dbo].[Table_Exemple]
SET [toto] = 0
La table ressemble à ça :
Ok maintenant je peu sortir le fait que désormais je n’accepte plus les valeurs null dans cette colonne.
J’enregistre et c’est bon donc maintenant si j’insere une ligne sans spécifier la valeur de la colonne toto :
INSERT INTO [AdventureWorksLT].[dbo].[Table_Exemple]
([Libelle]
)
VALUES
('exemple4')
Le résultat :
