Cita: create table det_prestamos
(cod_pres int not null,
nro_cuo int not null, check(nro_cuo>=6 and nro_cuo<=30),
interes int not null, check(interes>0),
amortizacion int not null, check(amortizacion>0),
cuota int not null, check(cuota>=0),
fecha_venc date,
estado varchar(20),
primary key(cod_pres),
foreign key(cod_pres) references prestamos(cod_pres));
cod_pres en esta tabla no puede ser primary key. Si es una referencia a prestamos que si es primary esta solo debe ser foreign key y se va a poder repetir en esta tabla.
Por eso te sale el error.
En pocas palabras, no puedes tener un campo con primary y foreign key al mismo tiempo. No es funcional.