Intervalo de horas en sql

Hola espero que me puedas ayudar necesito mostrar a los profes que ya tienen un horario explico:
Tengo en un sql server
create table profe
(codP char(5)primary key,
datos varchar(50))
go
create table cursos
(codC char(5)pimary key,
nomC varchar(50))
go
create table horario
(codP char(5)foreign key references profe,
codP char(5)foreign key references cursos,
fecha datetime,
horaingreso datetime,
horasalida)
go
Por ejemplo registro a un profesor(P0001)para el día
(05/06/2010) del curso (historia)a las 8:00 am y su salida es 10:00 am
--
insert into horario values('P0001','C0001','05/06/2010',08:00 am','10:00 am')
Lo que tengo que hacer es no debo registrar el mismo horario para el mismo profe
como lo hago
necesito mostrar si este profe ya tiene registrado este horario
lo hecho de esta manera pero no sale
--
create proc verificar
@codP varchar(6),
@fecha
@hi datetime,
@hs datetime
As
   select * from horario where codP=@codP and fecha=@fecha and h_i>=@hi and h_s<=@hs 
---
Bueno si sale si ejecuto esto
exec verificar'P0001','05/06/2010','08:00 am','10:00 am'
Me muestra el registro que ya tengo
Pero si lo coloco así
   exec verificar'P0001','05/06/2010','07:00 am','10:00 am'
no me muestra el registro ..mejor dicho no me respeta el rango de horas por que este profe ya
esta registrado de 6 a 10
como haria entonces en esta parte de aqui
select * from horario where codP=@codP and fecha=@fecha and ' h_i>=@hi and h_s<=@hs  '
¿Te lo he dejado con comillas porque creo? Que es ahí donde debo cambiar pero no se como
..
lo necesito porque si hgo otro insert
insert into horario values('P0001','C0001','05/06/2010',07:00 am','11:00 am')
No puede ser que el mismo profe tenga 2 horarios a la misma hora o en ese intervalo de tiempo y en la misma fecha
mejor dicho para no cruzar los horarios ya establecidos

Añade tu respuesta

Haz clic para o