En modifiant le type de données en varchar(4000) , vous lui faites accepter NULLs .
Essayez ceci :
ALTER TABLE [mytable] DROP CONSTRAINT PK_mytable_data;
ALTER TABLE [mytable] ALTER COLUMN data varchar(4000) NOT NULL;
ALTER TABLE [mytable] ADD CONSTRAINT PK_mytable_data PRIMARY KEY (fkid, data);
Notez que la taille de l'index (qui est implicitement créée pour PK ) est limité à 900 les octets et les insertions de valeurs supérieures échoueront.