SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[crud_OBR_Select] @CDG_OBR [Varchar](20) = null, @filter [Varchar](2000) = 'CDG_OBR IS NOT NULL' AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRANSACTION DECLARE @SGA TABLE( CDG_OBR VARCHAR(20)) INSERT INTO @SGA (CDG_OBR) EXEC(' SELECT CDG_OBR FROM OBR WHERE '+ @filter ) SELECT OBR.CDG_OBR, TIP_OBR, DSC_OBR, DRC_OBR, CIU_OBR, TLF_OBR, FAX_OBR, FCH_INI, FCH_FNL, IDF_COO, IDF_DTR, IDF_CLI, IDF_ALM, FORMAPAGO, SOCIEDAD, ORGCOMPRAS, CCOSTO, CDGCIA FROM dbo.OBR INNER JOIN @SGA S ON S.CDG_OBR = obr.CDG_OBR WHERE (OBR.CDG_OBR = @CDG_OBR OR @CDG_OBR IS NULL) COMMIT GO DECLARE @return_value int EXEC @return_value = [dbo].[crud_OBR_Select] @CDG_OBR = NULL, @filter = N'CDG_OBR IN (''01'',''02'')' SELECT 'Return Value' = @return_value GO