primero cuando tu declaras una variable char esta variable char de una longitud de 20 como tu la declaras siempre tomara los 20 valores es decir
si declaro esta variable
Declare @Code Char(10)
Set @Code = '123'
en verdad @Code valdra '123 '
ves la diferencia char siempre toma todo el ancho que ha sido declarado por esto es mejor que pases esa declaracion de la variable a un tipo varchar
Código sql:
Ver originalALTER PROCEDURE SP_LISTAR_CONCEPTO_DE_PAGO
@flag VARCHAR(20)
AS
DECLARE @SQLString NVARCHAR(255)
SET @pvarRegimen = N'SELECT codigo,descripcion FROM M_ConcePago WHERE ' + @flag + ' = ''1'' ORDER BY codigo'
EXEC sp_executesql @pvarRegimen
GO
EXEC SP_LISTAR_CONCEPTO_DE_PAGO 'Lquinta'