2016-11-08 2 views

Répondre

0

essayer ceci, avec le type de la colonne

ALTER TABLE yourlib/yourtable ALTER COLUMN yourcolumn SET DATA 
TYPE VARCHAR (100) NOT NULL       
0
ALTER TABLE MYDB.RULES ALTER TYPEID SET NOT NULL; 

est correct.

Comment délivrez-vous la déclaration?

Le code d'erreur que vous déclarez, Etat SQL = 57014 - Processing was canceled as requested.

Leads moi de croire que cependant vous utilisez la déclaration, vous ne voyez pas le message d'enquête CPA32B2 - Change of file RULES may cause data to be lost. (C I); donc il obtient automatiquement une réponse avec un C-Cancel.

0

Si vous voulez une contrainte, vous ajoutez une contrainte. D'abord, assurez-vous que toutes les lignes de la table satisfont à la contrainte, puis ajoutez la contrainte.

update mylib/myfile set myfield = ' ' where myfield is null; 
ALTER TABLE mylib/myfile ADD CONSTRAINT myfieldisnull CHECK (myfield is not null); 
1

Vous devez d'abord identifier et gérer les valeurs NULL de la table cible (mise à jour, suppression, etc.)

SELECT COUNT(1) FROM MYDB.RULES WHERE TYPEID IS NULL; 

Que vous pouvez créer la contrainte sur la table cible.

ALTER TABLE MYDB.RULES ALTER COLUMN TYPEID SET NOT NULL;