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

Error al crear procedimiento

Estas en el tema de Error al crear procedimiento en el foro de SQL Server en Foros del Web. A ver si me podeis ayudar. Me he creado un procedimiento, en la cual, tras relacionar 2 tablas, obtengo una tercera, en la cual si ...
  #1 (permalink)  
Antiguo 08/12/2010, 06:07
 
Fecha de Ingreso: diciembre-2010
Mensajes: 27
Antigüedad: 13 años, 4 meses
Puntos: 0
Error al crear procedimiento

A ver si me podeis ayudar. Me he creado un procedimiento, en la cual, tras relacionar 2 tablas, obtengo una tercera, en la cual si existen filas, pues inserto en la tabla Reserva los datos de entrada, pero es que me da el siguiente error cuando ejecuto:


EXEC Procedimiento 1
Mens 201, Nivel 16, Estado 4, Procedimiento NombreProcedimiento, Línea 0
El procedimiento o la función 'NombreProcedimiento' esperaba el parámetro '@TipoHabitacion', que no se ha especificado.



CREATE PROC NombreProcedimiento
(@NumIdentidad char(9),@TipoHabitacion varchar(10),@FechaEntrada datetime,@FechaSalida datetime)
AS
IF EXISTS (SELECT Numero FROM Habitacion WHERE Tipo = @TipoHabitacion EXCEPT SELECT Numero FROM Reserva)
BEGIN
INSERT INTO Reserva (DNI, Numero, Entrada, Salida)
VALUES (@NumIdentidad,Numero,@FechaEntrada,@FechaSalida);
END
RETURN
  #2 (permalink)  
Antiguo 08/12/2010, 08:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error al crear procedimiento

El error que te manda es porque cuando hiciste el exec nombreprocedimiento no mandaste todos los valores que recibe tiene que ser asi:

Código SQL:
Ver original
  1. EXEC nombreprocedimiento NumIdentidad,TipoHabitacion,FechaEntrada,FechaSalida

Saludos!
  #3 (permalink)  
Antiguo 08/12/2010, 10:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 27
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error al crear procedimiento

PRECEDURE.........

AS
DECLARE @Numero int;
IF EXISTS (SELECT Numero FROM Habitacion WHERE Tipo = @TipoHabitacion EXCEPT SELECT Numero FROM Reserva)T
BEGIN
@Numero= (SELECT TOP 1 FROM T);(*El primero de la tabla resultante*)
INSERT INTO Reserva (DNI,Numero, Entrada, Salida)
VALUES (@NumIdentidad,@Numero,@FechaEntrada,@FechaSalida) ;
END
RETURN


Me salen errores:
Mens 102, Nivel 15, Estado 1, Procedimiento ReservaHabitacion, Línea 5
Sintaxis incorrecta cerca de 'T'.
Mens 156, Nivel 15, Estado 1, Procedimiento ReservaHabitacion, Línea 7
Sintaxis incorrecta cerca de la palabra clave 'FROM'.
Mens 156, Nivel 15, Estado 1, Procedimiento ReservaHabitacion, Línea 11
Sintaxis incorrecta cerca de la palabra clave 'RETURN'.
  #4 (permalink)  
Antiguo 08/12/2010, 13:23
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error al crear procedimiento

Código SQL:
Ver original
  1. AS
  2. DECLARE @Numero INT;
  3. IF EXISTS (SELECT Numero FROM Habitacion WHERE Tipo = @TipoHabitacion EXCEPT SELECT Numero FROM Reserva )
  4. BEGIN
  5. @Numero= (SELECT top 1 Numero FROM Habitacion WHERE Tipo = @TipoHabitacion EXCEPT SELECT Numero FROM Reserva);--El primero de la tabla resultante
  6. INSERT INTO Reserva (DNI,Numero, Entrada, Salida)
  7. VALUES (@NumIdentidad,@Numero,@FechaEntrada,@FechaSalida) ;
  8. END
  9. RETURN

Prueba asi :)
  #5 (permalink)  
Antiguo 08/12/2010, 16:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 27
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error al crear procedimiento

Joer,me sigue saliendo este error , y es en la linea:

@Numero=(SELECT TOP 1 Numero FROM Habitacion WHERE Tipo = @TipoHabitacion EXCEPT SELECT Numero........

Mens 102, Nivel 15, Estado 1, Procedimiento ReservaHabitacion, Línea 7
Sintaxis incorrecta cerca de '@Numero'.
Mens 156, Nivel 15, Estado 1, Procedimiento ReservaHabitacion, Línea 11
Sintaxis incorrecta cerca de la palabra clave 'RETURN'.
  #6 (permalink)  
Antiguo 08/12/2010, 16:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 27
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error al crear procedimiento

ya esta solucionado.Faltaba el SET.1000 gracias

Etiquetas: procedimiento
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 14:26.