Ver Mensaje Individual
  #6  
Antiguo 13-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por pepon386
Prueba a hacerlo de la siguiente manera (no lo he probado, así que a lo mejor hay algún error de sintaxis):

Código SQL [-]
 
CREATE procedure spActHist (@docidentidad varchar(30),
@fechaincon datetime,
@fechafincon datetime,
@idtipocontrato int, @idtipovincu int),
@EXISTE int AS
select Count(*) as @EXISTE
from Historico
where [docidentidad]=@docidentidad
if (@Existe = 0) then
begin
insert into [Historico]
([docidentidad], [fechaincon], [fechafincon], [idtipocontrato], [idtipovincu])
values
(@docidentidad, @fechaincon, @fechafincon, @idtipocontrato, @idtipovincu)
end
¿Es válido "select Count(*) as @EXISTE"?
Igualmente no recomiendo hacer un Count para saber si hay como mínimo un registro, simplemente porque el count se ejecuta completo, si la tabla es algo grande, imagínesen!

Viendo nuevamente la pregunta de kejos, puedo suponer, que exita una UK o PK compuesta en la tabla históricos, y supongo nuevamente que comete el error en el exists solo filtrando por uno de los campos:
Código SQL [-]
CREATE procedure spActHist (@docidentidad varchar(30),
                            @fechaincon datetime,
                            @fechafincon datetime,
                            @idtipocontrato int, @idtipovincu int) AS
  if not exists (select 1
                   from Historico
                  where [docidentidad]=@docidentidad
                     and [idtipocontrato] = @idtipocontrato 
                     and [idtipovincu] = @idtipovincu)
    insert into [Historico]
       ([docidentidad], [fechaincon], [fechafincon], [idtipocontrato], [idtipovincu])
    values
       (@docidentidad, @fechaincon, @fechafincon, @idtipocontrato, @idtipovincu)

Kejos sería bueno que des alguna señal!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita