CODE RETOUR -190

THE ATTRIBUTES SPECIFIED FOR THE COLUMN table-name.column-name ARE NOT COMPATIBLE WITH THE EXISTING COLUMN DEFINITION

Explication :
Les attributs de la colonne dans une instruction ALTER TABLE ne sont pas compatibles avec les attributs de la colonne existante.

table-name
Le nom de la table.
column-name
Le nom de la colonne.

Les raisons possibles de cette erreur incluent :

Type de données incompatible
L’instruction ALTER TABLE ALTER COLUMN SET DATA TYPE permet de modifier les colonnes des types de données suivants uniquement :

  • Personnage
  • Numérique
  • Binaire

Si la clause SET DATA TYPE a été spécifiée, la colonne existante n’est pas compatible avec le nouveau type de données qui a été spécifié ou est d’un type de données qui ne peut pas être modifié.

La colonne Identité est obligatoire
Les clauses suivantes ne peuvent être spécifiées que pour une colonne définie comme colonne d’identité :

  • RESTART
  • SET GENERATED
  • SET INCREMENT BY
  • SET MINVALUE and SET NO MINVALUE
  • SET MAXVALUE and SET NO MAXVALUE
  • SET CYCLE and SET NO CYCLE
  • SET CACHE and SET NO CACHE
  • SET ORDER and SET NO ORDER

Si l’une de ces clauses a été spécifiée, la colonne existante n’est pas définie en tant que colonne d’identité.

Les valeurs par défaut
Si une clause SET DEFAULT ou DROP DEFAULT a été spécifiée, la colonne existante soit :

  • N’a pas de valeur par défaut définie, ou la colonne a NOT NULL comme attribut null.
  • Est défini comme colonne d’identité, ROWID ou colonne d’horodatage de changement de ligne.

Modification des colonnes ROW BEGIN, ROW END ou TRANSACTION START ID
Si ALTER COLUMN a été spécifié pour remplacer la colonne par une colonne ROW BEGIN, ROW END ou TRANSACTION START ID :

  • La colonne est déjà définie en tant que colonne générée.
  • La colonne est déjà définie avec une valeur par défaut spécifiée par l’utilisateur. Exécutez une instruction ALTER TABLE pour supprimer la valeur par défaut. Ensuite, la définition de la colonne peut être modifiée.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Examinez l’instruction SQL et effectuez l’action appropriée, puis soumettez à nouveau l’instruction.

  • Modifiez l’instruction afin que les attributs spécifiés pour la colonne modifiée soient compatibles avec la définition de colonne existante.
  • Supprimez la spécification d’attribut incompatible.
  • Spécifiez une colonne différente.

ETATSQL :
42837