 @VarName VARCHAR(250)
AS
BEGIN
            SET XACT_ABORT ON
            SET NOCOUNT ON
             DECLARE @SqlQuery NVARCHAR(MAX)= ''  
			 IF OBJECT_ID('tempdb..#cache_usage_includes') IS NOT NULL DROP TABLE #cache_usage_includes;
		     CREATE TABLE #cache_usage_includes (
			 	StmtOccurId INT,
				StatementTypeName VARCHAR(50),
				ProgramID INT,
				ProgramName VARCHAR(255),
				ProgramTypeID INT,
				IncludeName VARCHAR(250)
		     ); 
			  IF OBJECT_ID(N'cacheEZViewer_Usage_Includes', N'U') IS NOT NULL 
              BEGIN
	                 SET @SqlQuery = ' INSERT INTO #cache_usage_includes 
			                                    (StmtOccurId ,StatementTypeName ,ProgramID ,ProgramName ,ProgramTypeID ,IncludeName) 
								 SELECT DISTINCT StmtOccurId ,StatementTypeName ,ProgramID ,ProgramName ,ProgramTypeID ,IncludeName 
								 FROM cacheEZViewer_Usage_Includes ';
                     EXECUTE SP_EXECUTESQL @SqlQuery;
              END;
			  SELECT  m.IncludeName  ,m.ProgramID ,m.ProgramName ,m.ProgramTypeID ,m.StmtOccurID ,m.StatementTypeName
					   ,m.VarID ,m.VarName ,m.iLevel ,m.PIC ,m.IsField, m.IsFiller ,m.Type AS VarTypeID ,m.ProgIDReference
					   ,m.Father ,m.Ancestor AS VarAncestor ,m.IsCopy
					   ,m.StartRow AS VarStartRow ,m.StartCol AS VarStartCol ,m.EndRow AS VarEndRow ,m.EndCol AS VarEndCol
					   ,pth.PathStr AS VarPathStr
					   ,vf.VarName AS FatherName
					   ,va.VarName AS AncestorName
				FROM (
						SELECT  ch.IncludeName  ,ch.ProgramID ,ch.ProgramName ,ch.ProgramTypeID ,ch.StmtOccurID ,ch.StatementTypeName
							  ,v.VarID ,v.VarName ,v.iLevel ,v.PIC ,v.IsField, v.IsFiller ,v.Type ,v.ProgIDReference
							  ,v.Father ,v.Ancestor ,v.IsCopy
							  ,occ.PathID ,occ.StartRow ,occ.StartCol  ,occ.EndRow  ,occ.EndCol
						FROM Variables v
							INNER JOIN Occurrences occ ON v.OccurID = occ.OccurID
							INNER JOIN #cache_usage_includes ch on ch.StmtOccurID = occ.SourceType
						WHERE occ.SourceType IN (SELECT * FROM #numeric_param_temp) AND
							  (@VarName = '%'  OR v.VarName LIKE @VarName )
					   ) m
							INNER JOIN Paths pth ON m.PathID = pth.PathID
							INNER JOIN Variables vf ON m.Father = vf.VarID
							INNER JOIN Variables va ON m.Ancestor = va.VarID
				ORDER BY m.VarID ;
END ;