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