Error en procedimiento almacenado

04/03/2008 - 10:11 por Cristian Meneses | Informe spam
Buenas a todos.
Tengo varios procedimientos almacenados que tienen la misma logica,
pero este no funciona. La sintaxis esta correcta pero me da error en
ORDER y si lo saco error en AND. Por lo que he visto y comentando
partes, el error esta despues del ELSE, pero no logro verlo. Será la
cantidad de caracteres que puedo ejecutar con un EXEC o algo por el
estilo?

CREATE PROCEDURE [dbo].[GETTiposMaster]
(
@IDTipoMaster int = NULL,
@CodTipoMaster int = NULL,
@SQLFiltro varchar(8000) = NULL
)
AS
IF @SQLFiltro = NULL
SELECT
IDTipoMaster,
CodTipoMaster as 'Cod Tipo Master',
TipoMaster as 'Tipo Master'
FROM TiposMaster
WHERE Eliminado = 0 AND
IDTipoMaster = CASE WHEN @IDTipoMaster = NULL THEN IDTipoMaster
ELSE @IDTipoMaster END AND
CodTipoMaster = CASE WHEN @CodTipoMaster = NULL THEN CodTipoMaster
ELSE @CodTipoMaster END
ORDER BY TipoMaster
ELSE
EXEC('SELECT
IDTipoMaster,
CodTipoMaster as ''Cod Tipo Master'',
TipoMaster as ''Tipo Master''
FROM TiposMaster
WHERE Eliminado = 0 AND ' + @SQLFiltro + ' ORDER BY TipoMaster')
GO

Muchas gracias por adelantado. Atte


Cristian Meneses
SQL Server 2000/2005

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
04/03/2008 - 14:41 | Informe spam
Por favor pegue el texto exacto del mensaje de error.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Cristian Meneses" wrote:

Buenas a todos.
Tengo varios procedimientos almacenados que tienen la misma logica,
pero este no funciona. La sintaxis esta correcta pero me da error en
ORDER y si lo saco error en AND. Por lo que he visto y comentando
partes, el error esta despues del ELSE, pero no logro verlo. Será la
cantidad de caracteres que puedo ejecutar con un EXEC o algo por el
estilo?

CREATE PROCEDURE [dbo].[GETTiposMaster]
(
@IDTipoMaster int = NULL,
@CodTipoMaster int = NULL,
@SQLFiltro varchar(8000) = NULL
)
AS
IF @SQLFiltro = NULL
SELECT
IDTipoMaster,
CodTipoMaster as 'Cod Tipo Master',
TipoMaster as 'Tipo Master'
FROM TiposMaster
WHERE Eliminado = 0 AND
IDTipoMaster = CASE WHEN @IDTipoMaster = NULL THEN IDTipoMaster
ELSE @IDTipoMaster END AND
CodTipoMaster = CASE WHEN @CodTipoMaster = NULL THEN CodTipoMaster
ELSE @CodTipoMaster END
ORDER BY TipoMaster
ELSE
EXEC('SELECT
IDTipoMaster,
CodTipoMaster as ''Cod Tipo Master'',
TipoMaster as ''Tipo Master''
FROM TiposMaster
WHERE Eliminado = 0 AND ' + @SQLFiltro + ' ORDER BY TipoMaster')
GO

Muchas gracias por adelantado. Atte


Cristian Meneses
SQL Server 2000/2005


Respuesta Responder a este mensaje
#2 Cristian Meneses
04/03/2008 - 16:57 | Informe spam
El error que da es el siguiente

Servidor: mensaje 156, nivel 15, estado 1, línea 6
Sintaxis incorrecta cerca de la palabra clave 'ORDER'.

Saludos


Cristian Meneses
Respuesta Responder a este mensaje
#3 Gux (MVP)
04/03/2008 - 17:35 | Informe spam
No puedo reproducir el error, he ejecutado su código y el procedimiento fue
creado exitosamente sin errores de sintaxis.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Cristian Meneses" wrote:

El error que da es el siguiente

Servidor: mensaje 156, nivel 15, estado 1, línea 6
Sintaxis incorrecta cerca de la palabra clave 'ORDER'.

Saludos


Cristian Meneses

Respuesta Responder a este mensaje
#4 Cristian Meneses
04/03/2008 - 17:47 | Informe spam
Hola Gux
A mi me pasa lo mismo, la sintaxis perfecta y me deja crear el
procedimiento pero al ejecutarlo desde el Analizador de consultas, o
bien copiando el mismo codigo pero declarando como variables los
parametros y seteandolos a null sale este error. Del mismo modo si lo
llamo desde una aplicacion VB .NET.
Lo raro es que para otras tablas que hice el mismo procedimiento
TiposLicenciaturas, TiposEspecialidades, etc, con la misma estructura
de tabla me funcionan bien.
Espero que puedas reproducirlo, gracias!



Cristian Meneses
Respuesta Responder a este mensaje
#5 jcac
04/03/2008 - 18:05 | Informe spam
Hola Cristian

Pruebalo así:

CREATE PROCEDURE [dbo].[GETTiposMaster]
(
@IDTipoMaster int = NULL,
@CodTipoMaster int = NULL,
@SQLFiltro varchar(8000) = NULL
)
AS
IF @SQLFiltro = NULL
SELECT IDTipoMaster, CodTipoMaster as [Cod Tipo Master], TipoMaster as [Tipo
Master]
FROM TiposMaster
WHERE Eliminado = 0
AND IDTipoMaster = CASE WHEN @IDTipoMaster = NULL THEN IDTipoMaster ELSE
@IDTipoMaster END
AND CodTipoMaster = CASE WHEN @CodTipoMaster = NULL THEN CodTipoMaster
ELSE @CodTipoMaster END
ORDER BY TipoMaster
ELSE
EXEC('SELECT IDTipoMaster, CodTipoMaster as [Cod Tipo Master], TipoMaster as
[Tipo Master]
FROM TiposMaster
WHERE Eliminado = 0 AND ' + @SQLFiltro + ' ORDER BY TipoMaster')
GO

Saludos

Juan Carlos
"Cristian Meneses" escribió en el mensaje
news:
Hola Gux
A mi me pasa lo mismo, la sintaxis perfecta y me deja crear el
procedimiento pero al ejecutarlo desde el Analizador de consultas, o
bien copiando el mismo codigo pero declarando como variables los
parametros y seteandolos a null sale este error. Del mismo modo si lo
llamo desde una aplicacion VB .NET.
Lo raro es que para otras tablas que hice el mismo procedimiento
TiposLicenciaturas, TiposEspecialidades, etc, con la misma estructura
de tabla me funcionan bien.
Espero que puedas reproducirlo, gracias!



Cristian Meneses
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida