hola gente les queria consultar cual el es el error en esta sentencia que hice en sql ( a mi me tira el siguiente mensaje "
Sintaxis incorrecta cerca de la palabra clave 'in'."... Les comento que los que quiero hace es modificar los valores que salen el los label (curso,dia, hora y turno) por los que señalo en los combobox) a continuacion les dejo la imagen del formulario, la parte de la base de datos que estoy usando y el el codigo en sql donde me tira error, desde ya muchas gracias y disculpen la molesta pero soy muy nuevo en esto 
base de datos (lo que esta en rojo son las concexiones importantes)  
 
  formulario en visual    
  
y la consulta que hago en sql   
create procedure modificarhorariosprofe  
 Cita:  @dni int,
@horario varchar(50),
@dia varchar(50), 
@turno varchar (50),
@curso varchar (50),
@horariom int,
@diam int,
@turnom int, 
@cursom varchar(50)
 
as  
update horariopersonal set horario = @horariom, dia = @diam, turno =@turnom, curso = @cursom
where id_personal = p.id_personal and horario = h.horario and dia = d.dia and turno = t.turno and curso = c.curso
in (select p.id_personal,h.horario, d.dia, t.turno, c.curso from personal p
inner join horariopersonal hp on hp.id_personal = p.id_personal
inner join cursos c on c.curso = hp.curso
inner join turnos t on t.turno = c.turno
inner join horarios h on h.turno = t.turno
inner join dias d on d.dia = hp.dia
where p.nro = @dni and h.descricpion =@horario and d.descripcion = @dia and t.descripcion =  @turno and c.descripcion =  @curso)