SQL - Porque me da error el siguiente codigo??

 
Vista:

Porque me da error el siguiente codigo??

Publicado por ibai (47 intervenciones) el 26/04/2001 17:31:49
No consigo encontrar el error cerca de Else que me indica el analizador de consultas.Veamos si alguien me puede ayudar.
CREATE PROCEDURE Insertar
@tabla char(10), @Valores char(500)
AS
DECLARE @ValorNuevo int
If @Valores NOT LIKE ' '
WHILE @@ERROR !=0
BEGIN
EXEC( 'SELECT top 1 recno from '+@tabla+' order by recno')
SET @ValorNuevo = recno+1
EXEC ('INSERT INTO '+@tabla+' VALUES '+@Valores+@ValorNuevo+')')
CONTINUE
END
EXEC('SELECT * FROM '+@tabla +'where recno=@ValorNuevo')
Else
WHILE @@ERROR !=0
BEGIN
EXEC( 'SELECT top 1 recno from '+@tabla+' order by recno')
SET @ValorNuevo=recno+1
EXEC ('INSERT INTO '+@tabla+'(recno) VALUES ('+@ValorNuevo+')')
CONTINUE
END
EXEC('SELECT * FROM '+@tabla +' where recno=@ValorNuevo')

Sintaxis incorrecta cerca de la palabra clave Else
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 diana

RE:Porque me da error el siguiente codigo??

Publicado por diana (20 intervenciones) el 27/04/2001 01:49:41
prueba con los siguientes cambios:
CREATE PROCEDURE Insertar
@tabla char(10), @Valores char(500)
AS
BEGIN
DECLARE @ValorNuevo int
If @Valores NOT LIKE ' '
BEGIN
WHILE @@ERROR !=0
BEGIN
EXEC( 'SELECT top 1 recno from '+@tabla+' order by recno')
SET @ValorNuevo = recno+1
EXEC ('INSERT INTO '+@tabla+' VALUES '+@Valores+@ValorNuevo+')')
CONTINUE
END
EXEC('SELECT * FROM '+@tabla +'where recno=@ValorNuevo')
END
Else
BEGIN
WHILE @@ERROR !=0
BEGIN
EXEC( 'SELECT top 1 recno from '+@tabla+' order by recno')
SET @ValorNuevo=recno+1
EXEC ('INSERT INTO '+@tabla+'(recno) VALUES ('+@ValorNuevo+')')
CONTINUE
END
EXEC('SELECT * FROM '+@tabla +' where recno=@ValorNuevo')
END
END
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

RE:Porque me da error el siguiente codigo??

Publicado por sebastian (73 intervenciones) el 27/04/2001 03:06:52
Lo corregiste como te contestaron anteriormente??

Solo tenias que iniciar un Begin despues del If y cerrar con un end antes del Esle..
Y tambien iniciar un begin despues del else y cerrar con un end al final...

Saludos...
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

Solucionado con BEGIN y END

Publicado por ibai (47 intervenciones) el 27/04/2001 11:38:12
Solucionado poniendo el BEGIN y el END del bloque IF

Gracias,
Ibai
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