Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

problemilla con procedimiento almacenado

Estas en el tema de problemilla con procedimiento almacenado en el foro de SQL Server en Foros del Web. hola a todos!!!! tengo un pequeño problemilla con un procedimiento almacenado.... mi procedimiento es de inserción y es el siguiente: Código: CREATE procedure spActHist (@docidentidad ...
  #1 (permalink)  
Antiguo 11/01/2006, 08:42
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
problemilla con procedimiento almacenado

hola a todos!!!!
tengo un pequeño problemilla con un procedimiento almacenado....
mi procedimiento es de inserción y es el siguiente:
Código:
CREATE procedure spActHist (@docidentidad varchar(30), @fechaincon datetime, 
@fechafincon datetime, @idtipocontrato int, @idtipovincu int) AS if not exists (select 
[idtipocontrato], [idtipovincu] from Historico where [docidentidad]=@docidentidad) insert 
into [Historico] ([docidentidad],  [fechaincon], [fechafincon], [idtipocontrato], [idtipovincu]) 
values (@docidentidad, @fechaincon, @fechafincon, @idtipocontrato, @idtipovincu)
pero cuando voy a la ejecución de mi programa no me funciona y cuando le quito el if not exists hay si me inserta entonces no entiendo el porque de esto y básicamente lo que necesito es que me inserte siempre y cuando esos 2 valores que estan en el select del if not exists no sean iguales a los que entro entonces estoy algo confundida con esto a quien me pueda ayudar se lo agradezco....

  #2 (permalink)  
Antiguo 11/01/2006, 10:01
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Código:
CREATE procedure spActHist 

@docidentidad varchar(30), 
@fechaincon datetime, 
@fechafincon datetime, 
@idtipocontrato int, 
@idtipovincu int
AS 
if not exists (select [idtipocontrato], [idtipovincu] from Historico where [docidentidad]=@docidentidad) 

insert into 
	[Historico] ([docidentidad],  [fechaincon], [fechafincon], [idtipocontrato], [idtipovincu]) 
values 
	(@docidentidad, @fechaincon, @fechafincon, @idtipocontrato, @idtipovincu)
seria mejor si lo tabulas, para que los que lean puedan apreciar lo que hace tu sp...


con tu sp... puede ser que no grabe porque solo validas que exista el docidentidad...

es decir, con que exista docidentidad con cualquier otro idtipovincu te va a regresar true. osea que si existe y no va a insertar nada hasta que cambies a un docidentidad que no exista con ningun idtipovinco.

en resumen, agrega idtipovincu en tu clausula where del select que mandas a if exists.

un saludo
  #3 (permalink)  
Antiguo 11/01/2006, 10:09
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola!!!!
muchas gracias por tu respuesta me ha servido mucho es mas eso era lo que me faltaba ya me funciona correctamente muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:46.