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

Problema en procedimiento

Estas en el tema de Problema en procedimiento en el foro de SQL Server en Foros del Web. Hola! Tengo un problema con un procedimiento, siempre los he hecho en mysql y en el sql de microsoft cambia un poco. El procedimiento tiene ...
  #1 (permalink)  
Antiguo 19/05/2015, 04:10
 
Fecha de Ingreso: mayo-2015
Mensajes: 30
Antigüedad: 8 años, 11 meses
Puntos: 0
Problema en procedimiento

Hola!

Tengo un problema con un procedimiento, siempre los he hecho en mysql y en el sql de microsoft cambia un poco.

El procedimiento tiene que coger el número de una persona voluntaria(1=existe,0=no existe) y decir si es existe o no. Siempre me devuelve un valor negativo, creo que no esta cogiendo bien los datos de la tabla.

Código SQL:
Ver original
  1. CREATE PROCEDURE trabajador
  2. @cod_persona VARCHAR(15)
  3.  
  4. AS
  5.  
  6. DECLARE @voluntario VARCHAR(15)
  7.  
  8. BEGIN
  9.     IF (SELECT voluntario FROM persona WHERE voluntario=@voluntario) = 1
  10.    
  11.             BEGIN print 'Es voluntario'
  12.             END
  13.  
  14.             ELSE
  15.              print 'No es voluntario'
  16.             END
Cita:
Editado: Usar el Hilight "SQL", por favor

Última edición por gnzsoloyo; 19/05/2015 a las 06:08
  #2 (permalink)  
Antiguo 19/05/2015, 08:02
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Problema en procedimiento

Cita:
Iniciado por dbzbr Ver Mensaje
Hola!

Tengo un problema con un procedimiento, siempre los he hecho en mysql y en el sql de microsoft cambia un poco.

El procedimiento tiene que coger el número de una persona voluntaria(1=existe,0=no existe) y decir si es existe o no. Siempre me devuelve un valor negativo, creo que no esta cogiendo bien los datos de la tabla.

Código SQL:
Ver original
  1. CREATE PROCEDURE trabajador
  2. @cod_persona VARCHAR(15)
  3.  
  4. AS
  5.  
  6. DECLARE @voluntario VARCHAR(15)
  7.  
  8. BEGIN
  9.     IF (SELECT voluntario FROM persona WHERE voluntario=@voluntario) = 1
  10.    
  11.             BEGIN print 'Es voluntario'
  12.             END
  13.  
  14.             ELSE
  15.              print 'No es voluntario'
  16.             END
Haces un where con la variable @voluntario... pero esa variable no tiene asignada ningún valor.......

además haces
Código SQL:
Ver original
  1. SELECT voluntario FROM persona

Ese select que te retorna? para saber si puedes compararlo con el numero 1. podrias usar un count si lo que quieres es saber si hay más de 1.

En fin.
  #3 (permalink)  
Antiguo 30/05/2015, 20:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Problema en procedimiento

Estas enviando el código de la personas, y tu no lo estas utilizando ese dato, por lo tanto debes de hacer lo siguiente:
Código SQL:
Ver original
  1. CREATE PROCEDURE trabajador
  2. @cod_persona VARCHAR(15)
  3. AS
  4. BEGIN
  5.     IF (SELECT voluntario FROM persona WHERE cod_persona=@cod_persona) = 1
  6.     BEGIN
  7.             print 'Es voluntario'
  8.     END
  9.     ELSE
  10.              print 'No es voluntario'
  11.     END
  12. END

Última edición por gnzsoloyo; 30/05/2015 a las 21:22

Etiquetas: procedimiento, select, sql, tabla
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 15:08.