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
 

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


Preguntas similares