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...)
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,
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 holdlock
where idAlumno=@pCodigo
end
else
begin
select @mensaje='Alumno No Existe'
from notas holdlock
end
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
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
muchas gracias.... :D me servio.....