J'ai une table qui a plusieurs colonnes entières nullables. Ceci n'est pas souhaitable pour plusieurs raisons, donc je cherche à mettre à jour toutes les valeurs nulles à 0, puis à définir ces colonnes sur NOT NULL
. En plus de changer les valeurs nulles en 0
, les données doivent être préservées.
Je recherche la syntaxe SQL spécifique pour modifier une colonne (appelez-la ColumnA
) en " not null
". Supposons que les données ont été mises à jour pour ne pas contenir de valeurs nulles.
Utilisation de SQL Server 2000 .
sql-server
tsql
null
alter-table
alter-column
Codeur karmique
la source
la source
NOT NULL
peut entraîner de nombreuses journalisations.Réponses:
Tout d'abord, faites
NULL
disparaître toutes les valeurs actuelles :Ensuite, mettez à jour la définition de la table pour interdire les "NULLs":
la source
J'ai eu le même problème, mais le champ utilisé par défaut à null, et maintenant je veux le mettre à 0 par défaut. Cela a nécessité l'ajout d'une ligne supplémentaire après la solution de mdb:
la source
Vous devrez le faire en deux étapes:
la source
Pour Oracle 11g, j'ai pu modifier l'attribut de colonne comme suit:
Sinon, la réponse d'Abatichev semblait bonne. Vous ne pouvez pas répéter l'alter - il se plaint (au moins dans SQL Developer) que la colonne n'est déjà pas nulle.
la source
datatype
. C'est tout simplementcolumname NOT NULL
suffisant. Consultez la documentation .cela a fonctionné pour moi:
la source
Tant que la colonne n'est pas un identifiant unique
alors
Modifiez la table et définissez le champ sur non nul et spécifiez une valeur par défaut de 0
la source
cela semble plus simple, mais ne fonctionne que sur Oracle:
en outre, avec cela, vous pouvez également ajouter des colonnes, pas seulement le modifier. Il met à jour la valeur par défaut (0) dans cet exemple, si la valeur était nulle.
la source
En cas de
FOREIGN KEY CONSTRAINT
... il y aura un problème si '0' n'est pas présent dans la colonne de la table de clé primaire. La solution pour cela est ...ÉTAPE 1:
Désactivez toutes les contraintes à l'aide de ce code:
ÉTAPE 2:
ÉTAPE 3:
Activez toutes les contraintes à l'aide de ce code:
la source
Dans mon cas, j'ai eu des difficultés avec les réponses affichées. J'ai fini par utiliser ce qui suit:
Modifiez
VARCHAR(200)
votre type de données et modifiez éventuellement la valeur par défaut.Si vous n'avez pas de valeur par défaut, vous aurez un problème à effectuer cette modification, car la valeur par défaut serait null créant un conflit.
la source
Prenons un exemple:
Et je veux changer la colonne
EMPLOYEE_NAME
enNOT NULL
. Cette requête peut être utilisée pour la tâche:la source
Pour la javaDB intégrée incluse dans le JDK (la distribution prise en charge par Oracle de l'Apache Derby), ce qui suit a fonctionné pour moi
la source
Rendre la colonne non nulle et ajouter des valeurs par défaut peut également être fait dans l'interface graphique SSMS.
UPDATE myTable SET myColumn = 0
la source
Vous pouvez modifier la définition de la colonne DB existante à l'aide de sql suivant.
la source