DECLARE @CurrentDateTime DATETIMESET @CurrentDateTime = Getdate()DECLARE @Nth AS BITDECLARE @Aus INTDECLARE @Ante NVARCHAR(255)DECLARE @Atid INTDECLARE @Adid INTDECLARE @Brid INTDECLARE @Tid INTDECLARE @TeID INTDECLARE @Rkey NVARCHAR(20)SET @Rkey= '123456'--Get Exception Info SELECT @Tid = TidFROM Synonym_TesWHERE [ID] = @TeIDSELECT TOP(1)@Atid = TidFROM Synonym_TasksWHERE [Name] = 'Azn'SET @Nth = 0-- SET @Adid= 64 SELECT @Adid= brt.Dsid, @Brid = IdFROM Synonym_Brt brtWHERE brt.Rtn = 'Part 1'---- Is an auth needed? IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE id = Object_id('tempdb..#Fds')) DROP TABLE #FdsIF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE id = Object_id('tempdb..#Rls')) DROP TABLE #RlsIF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE id = Object_id('tempdb..#Mtcs')) DROP TABLE #Mtcs CREATE TABLE #Sid ( ID INT ) SET @i = 1WHILE @i <= 8000 BEGIN INSERT INTO #Sid VALUES (@i) SET @i = @i + 1 ENDCREATE TABLE #Fds ( Dsid INT, Rid INT, Fnme VARCHAR(100), Fve VARCHAR(255) )CREATE TABLE #Rls ( Dsid INT, Brid INT, Fnme VARCHAR(100), Fve VARCHAR(MAX), FCprs VARCHAR(30), Fopr VARCHAR(10) )CREATE TABLE #Mtcs ( Dsid INT, Rid INT, Brid INT )DECLARE @CidINTDECLARE @flag INTDECLARE @Count INTSET @flag = 1SELECT @Count = Count(Rid)FROM CgsWHERE Rid = @RkeyWHILE ( @flag <= @Count ) BEGIN SELECT @Cid= Id FROM Cgs WHERE Rid = @Rkey AND Cordr = @flag INSERT INTO #Fds (Dsid, Rid, Fnme, Fve) SELECT @AuthDsid, Rid, Fnme, Fve FROM vw_FdsAzn WHERE Rid= @Cid SET @flag = @flag + 1 ENDINSERT INTO #Rls (Dsid, Brid, Fnme, Fve, FCprs, Fopr)SELECT @AuthDsid, br.Id, brc.Fnme, Fve= CASE WHEN brc.FCprs IN ( 'INLE', 'NOT-BLE' ) THEN [dbo].[my_function](brc.Fve, brc.FCprs) ELSE brc.Fve END, brc.FCprs, dsf.FoprFROM Synonym_BRls br JOIN Synonym_Brc brc ON brc.Brid= br.Id JOIN Synonym_Brt brt ON brt.Id = br.Brid JOIN Synonym_DataSourceFds dsf ON dsf.Fnme= brc.Fnme AND dsf.Dsid = brt.DsidWHERE br.Atve= 1 AND br.Brid = @Brid DECLARE @dlm CHARSET @dlm = ','SELECT Rid, Dsid, Brid, Fnme, CompareFrom, FCprs, Fopr, CompareTo, PassedINTO #FCprssFROM (SELECT r.Brid, r.Fnme, r.FveAS CompareTo, r.FCprs, r.Fopr, f.FveAS CompareFrom, f.Rid, f.Dsid, CASE WHEN ( ( r.FCprs = 'EQS' AND ( f.Fve= r.Fve) ) OR ( r.FCprs = 'DOEL' AND r.Fopr<> 'OR' AND ( f.Fve<> r.Fve) ) OR ( r.FCprs = 'COS' AND ( f.FveLIKE '%' + r.Fve+ '%' ) ) OR ( r.FCprs = 'DON' AND r.Fopr<> 'OR' AND ( f.FveNOT LIKE '%' + r.Fve+ '%' ) ) OR ( r.FCprs = 'BETH' AND ( f.FveLIKE r.Fve+ '%' ) ) OR ( r.FCprs = 'DOTH' AND r.Fopr<> 'OR' AND ( f.FveNOT LIKE r.Fve+ '%' ) ) OR ( r.FCprs = 'ENH' AND ( f.FveLIKE '%' + r.Fve) ) OR ( r.FCprs = 'DOTH' AND r.Fopr<> 'OR' AND ( f.FveNOT LIKE '%' + r.Fve) ) OR ( r.FCprs = 'ISNULL' AND f.FveIS NULL ) OR ( r.FCprs = 'DOAL' AND r.Fopr= 'OR' AND ( Isnull(f.Fve, '') <> r.Fve) ) OR ( r.FCprs = 'DOEIN' AND r.Fopr= 'OR' AND ( Isnull(f.Fve, '') NOT LIKE '%' + r.Fve+ '%' ) ) OR ( r.FCprs = 'DOESITH' AND r.Fopr= 'OR' AND ( Isnull(f.Fve, '') NOT LIKE r.Fve+ '%' ) ) OR ( r.FCprs = 'DOETH' AND r.Fopr= 'OR' AND ( Isnull(f.Fve, '') NOT LIKE '%' + r.Fve) ) OR ( r.FCprs = 'ISNUMERIC' AND Isnumeric(f.Fve) = 1 ) OR ( r.FCprs = 'BETWEEN' AND f.FveBETWEEN Ltrim(Substring(r.Fve, 0, Charindex(',', r.Fve))) AND Ltrim(Substring(r.Fve, Charindex(',', r.Fve) + 1, 255)) ) OR ( r.FCprs = 'NOTBETWEEN' AND f.FveNOT BETWEEN Ltrim(Substring(r.Fve, 0, Charindex(',', r.Fve))) AND Ltrim(Substring(r.Fve, Charindex(',', r.Fve) + 1, 255)) ) OR ( r.FCprs = 'NOTIN' AND r.Fopr<> 'OR' AND t.ID IS NULL AND f.FveIS NOT NULL ) OR ( r.FCprs = 'NOTIN' AND r.Fopr= 'OR' AND t.ID IS NULL ) OR ( r.FCprs = 'IN' AND t.ID IS NOT NULL ) OR ( r.FCprs = 'ntble' AND r.Fopr<> 'OR' AND t.ID IS NULL AND f.FveIS NOT NULL ) OR ( r.FCprs = 'ntble' AND r.Fopr= 'OR' AND t.ID IS NULL ) OR ( r.FCprs = 'INTABLE' AND t.ID IS NOT NULL ) ) THEN 1 ELSE 0 END AS Passed FROM #Rls r LEFT JOIN #Fds f ON r.Fnme= f.Fnme LEFT JOIN #Sid t ON r.FCprs IN ( 'IN', 'NOTIN', 'INTABLE', 'ntble' ) AND t.ID <= Len(@dlm + r.Fve+ @dlm) AND Substring(@dlm + r.Fve+ @dlm, t.ID - 1, 1) = @dlm -- i need to move this on the top where there is join on # Sid table. AND Ltrim(Rtrim(Substring(@dlm + r.Fve+ @dlm, t.ID, Charindex(@dlm, @dlm + r.Fve+ @dlm, t.ID) - t.ID))) = f.Fve) a
AND Substring(@dlm + r.Fve+ @dlm, t.ID - 1, 1) = @dlm -- i need to move this on the top where there is join on # Sid table.