realmente nunca he trabajado con los check en ms sqlserver, pero en postgres si
porque tenes la definición de la tabla en el campo "Dui nvarchar(15) NOT NULL" si el campo solo recibira 10 digitos ??¿
imagino que por ahí anda tu problema porque en el chek solo agregas los 8 casillas + el guión
aparte de eso, no deberías de guardar el guión, para mí es innecesario, deberías solamente guardar los digitos sin formato y casterlos al momento de extraerlos cuando sea necesario y de paso te ahorras unos bytes de espacio en disco