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

[SOLUCIONADO] Store Procedure con If

Estas en el tema de Store Procedure con If en el foro de SQL Server en Foros del Web. hola! tengo que crear un store procedure que valide si existe el IDCulture existe en una tabla, al igual que el nombre y si la ...
  #1 (permalink)  
Antiguo 29/09/2012, 13:48
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 11 años, 6 meses
Puntos: 0
Store Procedure con If

hola! tengo que crear un store procedure que valide si existe el IDCulture existe en una tabla, al igual que el nombre y si la operacion es U,I,D y si todo esta bien en la variable de salida sale 1 sino 0 pero me saltan errores al momento de intentar crearlo el codigo es el siguiente:

Código:
CREATE PROCEDURE p_ValCulture
    @IDCulture  nchar(6),
    @Name nvarchar(50),
    @Date datetime,
    @Operacion varchar(1),
    @Valida VARCHAR(250) OUTPUT
AS
BEGIN
	
	SET @Valida = 1
	IF(@IDCulture = '' or @Name = '')
		BEGIN
			SET @Valida = 0
		END
	ELSE
		BEGIN
			IF (SELECT COUNT(*) FROM Production.Culture where IdCulture = @IDCulture)= 0 or
					SELECT COUNT(*) FROM Production.Culture where Name = @Name)= 0
				BEGIN
					SET @Valida = 0
				END
			ELSE
				BEGIN
					IF(DATEDIFF ( 'dd' ,@Date ,GETDATE())< 0)
						BEGIN
							SET @Valida = 0
						END
				END
			IF(@Operacion <> 'U' or @Operacion <> 'I' or @Operacion <> 'D' )
				BEGIN
					SET @Valida = 0
				END
		END	
	RETURN 
	END
GO
el codigo de los errores es:

Código:
Mens 156, Nivel 15, Estado 1, Procedimiento p_ValCulture, Línea 18
Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
Mens 102, Nivel 15, Estado 1, Procedimiento p_ValCulture, Línea 18
Sintaxis incorrecta cerca de '='.
Mens 102, Nivel 15, Estado 1, Procedimiento p_ValCulture, Línea 19
Sintaxis incorrecta cerca de ')'.
Mens 156, Nivel 15, Estado 1, Procedimiento p_ValCulture, Línea 23
Sintaxis incorrecta cerca de la palabra clave 'ELSE'.
Mens 1023, Nivel 15, Estado 1, Procedimiento p_ValCulture, Línea 25
Se especificó un parámetro 1 no válido para datediff.

Les agradesco cualquier ayuda, Saludos Mery
__________________
La vida es un asco, disfrutala....
  #2 (permalink)  
Antiguo 30/09/2012, 08:53
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Store Procedure con If

Código SQL:
Ver original
  1. CREATE PROCEDURE p_ValCulture
  2.     @IDCulture  NCHAR(6),
  3.     @Name nvarchar(50),
  4.     @DATE datetime,
  5.     @Operacion VARCHAR(1),
  6.     @Valida VARCHAR(250) OUTPUT
  7. AS
  8. BEGIN
  9.    
  10.     SET @Valida = 1
  11.     IF(@IDCulture = '' OR @Name = '')
  12.         BEGIN
  13.             SET @Valida = 0
  14.         END
  15.     ELSE
  16.         BEGIN
  17.             IF (SELECT COUNT(*) FROM Production.Culture WHERE IdCulture = @IDCulture)= 0 OR
  18.                     (SELECT COUNT(*) FROM Production.Culture WHERE Name = @Name)= 0
  19.                 BEGIN
  20.                     SET @Valida = 0
  21.                 END
  22.             ELSE
  23.                 BEGIN
  24.                     IF(DATEDIFF ( 'dd' ,@DATE ,GETDATE())< 0)
  25.                         BEGIN
  26.                             SET @Valida = 0
  27.                         END
  28.                 END
  29.             IF(@Operacion <> 'U' OR @Operacion <> 'I' OR @Operacion <> 'D' )
  30.                 BEGIN
  31.                     SET @Valida = 0
  32.                 END
  33.         END
  34.     RETURN
  35.     END
  36. GO
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 30/09/2012, 10:06
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Store Procedure con If

hola GeriReshef! no entiendo cual es la respuesta...hice algo mal al crear el post o se te olvide mandar la respuesta de los errores??

Saludos,Mery
__________________
La vida es un asco, disfrutala....
  #4 (permalink)  
Antiguo 30/09/2012, 13:08
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Store Procedure con If

Gimenez- la linea 18 en tu código es:
SELECT COUNT(*) FROM Production.Culture where Name = @Name)= 0
y debe ser
(SELECT COUNT(*) FROM Production.Culture where Name = @Name)= 0
Te faltaba el parentesis izquierdo.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #5 (permalink)  
Antiguo 08/10/2012, 10:19
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Store Procedure con If

Gracis GeriReshef!! perdon por tardar en contestar pero justo estoy en epoca de parciales....
__________________
La vida es un asco, disfrutala....

Etiquetas: procedure, select, store, 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 11:09.