SQL Server - Ayuda con Procedimiento Almacenado

   
Vista:
Imágen de perfil de Paulo

Ayuda con Procedimiento Almacenado

Publicado por Paulo (4 intervenciones) el 16/05/2014 00:00:56
Amigos,

El tema que me trae acá es que estoy creando un procedimiento el cual inserta un registro en una tabla dependiendo de la edad de una persona. Si la persona es mayor a 18 inserta 1 en el campo mayor_edad, sino inserta 0.

El problema es que ejecuto el procedimiento y me sale el mensaje que existen valores nulos y es lo que no entiendo, ya que los parámetros se los estoy dando "en duro". Les dejo el código para que lo vean y entiendan mejor:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--USE Pruebas
CREATE PROCEDURE p_clientes
	@nombre VARCHAR(30),
	@edad INT,
	@rut VARCHAR(10)
AS
	--DECLARE @nom VARCHAR(30)
	--DECLARE @anios INT
	--DECLARE @id VARCHAR(10)
 
		IF((@edad<>null) and (@edad<>''))
			BEGIN
				SELECT @nombre=nombre, @edad=edad, @rut=rut FROM cliente
 
				IF(@edad>18)
					BEGIN
						INSERT INTO cliente(nombre, edad, rut, mayor_edad) VALUES(@nombre, @edad, @rut, 1);
					END
				ELSE
					BEGIN
						INSERT INTO cliente(nombre, edad, rut, mayor_edad) VALUES(@nombre, @edad, @rut, 0);
					END
			END
		ELSE
			BEGIN
				PRINT 'No pueden ir valores nulos'
				RETURN
			END
 
 
EXEC p_clientes "Paulo", 17, "xxxxxxxx-x"

Si pudieran orientarme en mi error se los agradecería.

Saludos desde Chile
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Ayuda con Procedimiento Almacenado

Publicado por Isaias (3182 intervenciones) el 16/05/2014 20:07:19
Simple:

If (@edad <> null) ----- Esta mal

if (@edad isnull) = 1 -----es correcto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con Procedimiento Almacenado

Publicado por Guillermo (4 intervenciones) el 01/08/2014 22:40:05
con esta instruccion:

SELECT @nombre=nombre, @edad=edad, @rut=rut FROM cliente

los valores estan viniendo nulos si la tabla clienes esta vacia, comentala y prueba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar