elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  una consulta sobre un error en SQL server 20005 - CREATE PROCEDURE....
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: una consulta sobre un error en SQL server 20005 - CREATE PROCEDURE....  (Leído 4,724 veces)
XpandyX

Desconectado Desconectado

Mensajes: 55


Ver Perfil
una consulta sobre un error en SQL server 20005 - CREATE PROCEDURE....
« en: 18 Julio 2011, 03:18 »

Buenas amigos... he estado practicando .... en SQL server 2005 junto con Netbenas 6.9 ,  y bueno estoy creando un procedimiento para que luego lo use en un API en Netbeans... y bueno el código se los muestro a continuación:
(Tambien la base que cree...)

Código
  1. CREATE TABLE notas(
  2. idAlumno INT IDENTITY (1,1),
  3. alumno VARCHAR (30) NOT NULL
  4. CONSTRAINT unico UNIQUE,
  5. nota1 INT,
  6. nota2 INT,
  7. nota3 INT,
  8. comentario VARCHAR (60)
  9. CONSTRAINT inicia DEFAULT ''
  10. )
  11.  
  12.  
  13. -- Insertar filas
  14. INSERT notas (alumno,nota1,nota2,nota3)VALUES('Juan',11,11,11)
  15. INSERT notas (alumno,nota1,nota2,nota3)VALUES('Ana',12,12,12)
  16. INSERT notas (alumno,nota1,nota2,nota3)VALUES('Luis',13,13,13)
  17.  
  18.  
  19. CREATE PROCEDURE Verifica_alumno
  20.  
  21. @pCodigo INT,
  22. @mensaje VARCHAR(20)='aes' output,
  23. @alumno VARCHAR(30) output,
  24. @nota1 VARCHAR(2) output,
  25. @nota2 VARCHAR(2) output,
  26. @nota3 VARCHAR(2) output,
  27. @comen VARCHAR(60) output,
  28.  
  29. AS
  30.  
  31. DECLARE @codigo INT
  32. BEGIN
  33. SELECT @codigo=idAlumno FROM notas
  34. WHERE @pCodigo=idAlumno
  35. IF(@codigo=@pCodigo)
  36. BEGIN
  37. SELECT  @mensaje='Alumno Encontrado',
  38. @alumno=alumno,
  39. @nota1=CONVERT(VARCHAR, nota1),
  40. @nota2=CONVERT(VARCHAR, nota2),
  41. @nota3=CONVERT(VARCHAR, nota3),
  42. @comen=comentario
  43. FROM notas holdlock
  44. WHERE idAlumno=@pCodigo
  45. END
  46. ELSE
  47. BEGIN
  48. SELECT @mensaje='Alumno No Existe'
  49. FROM notas holdlock
  50. END
  51. END

Y bueno el error que me muestra es:

Mens 156, Nivel 15, Estado 1, Procedimiento Verifica_alumno, Línea 11
Sintaxis incorrecta cerca de la palabra clave 'AS'.
Mens 1018, Nivel 15, Estado 1, Procedimiento Verifica_alumno, Línea 25
Sintaxis incorrecta cerca de 'holdlock'. Si se va a usar como parte de una sugerencia de tabla, es necesario escribir una palabra clave WITH y paréntesis. Vea los Libros en pantalla de SQL Server para conocer la sintaxis correcta.
Mens 1018, Nivel 15, Estado 1, Procedimiento Verifica_alumno, Línea 31
Sintaxis incorrecta cerca de 'holdlock'. Si se va a usar como parte de una sugerencia de tabla, es necesario escribir una palabra clave WITH y paréntesis. Vea los Libros en pantalla de SQL Server para conocer la sintaxis correcta.

y he buscado referente a esto .... y pues no he encontrado nada de como solucionarlo.... por favor si alguno de vosotros sabe como poder solucionar...

Muchas gracias.... :D


En línea

hacknival

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: una consulta sobre un error en SQL server 20005 - CREATE PROCEDURE....
« Respuesta #1 en: 18 Julio 2011, 04:09 »

CREATE TABLE notas(
   idAlumno INT IDENTITY (1,1),
   alumno VARCHAR (30) NOT NULL
      CONSTRAINT unico UNIQUE,
   nota1 INT,
   nota2 INT,
   nota3 INT,
   comentario VARCHAR (60)
      CONSTRAINT inicia DEFAULT ''
)
 
 
-- Insertar filas
INSERT notas (alumno,nota1,nota2,nota3)VALUES('Juan',11,11,11)
INSERT notas (alumno,nota1,nota2,nota3)VALUES('Ana',12,12,12)
INSERT notas (alumno,nota1,nota2,nota3)VALUES('Luis',13,13,13)
 
 
CREATE PROCEDURE Verifica_alumno
 
@pCodigo INT,
@mensaje VARCHAR(20)='aes' output,
@alumno VARCHAR(30) output,
@nota1 VARCHAR(2) output,
@nota2 VARCHAR(2) output,
@nota3 VARCHAR(2) output,
@comen VARCHAR(60) output             ***aqui no lleva coma***
 
AS
 
DECLARE @codigo INT
BEGIN
      SELECT @codigo=idAlumno FROM notas
      WHERE @pCodigo=idAlumno
      IF(@codigo=@pCodigo)
      BEGIN
            SELECT  @mensaje='Alumno Encontrado',
                  @alumno=alumno,
                  @nota1=CONVERT(VARCHAR, nota1),
                  @nota2=CONVERT(VARCHAR, nota2),
                  @nota3=CONVERT(VARCHAR, nota3),
             @comen=comentario
            FROM notas whit (holdlock) /********aqui******/
            WHERE idAlumno=@pCodigo
      END
      ELSE
      BEGIN
            SELECT @mensaje='Alumno No Existe'
            FROM notas whit (holdlock) /*******aqui******/
      END
END







ESPERO TE SIRVA.... COMENTA


En línea

XpandyX

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: una consulta sobre un error en SQL server 20005 - CREATE PROCEDURE....
« Respuesta #2 en: 27 Julio 2011, 14:39 »

muchas gracias.... :D me servio.....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines