<?xml version="1.0" ?> 
<batchupdate menupath="Delete" description="Deletes Records which start with the specified text within the Occurrence comments. 
Then removes Survey_Events and Samples which have no records as a result of the action. To find the entered text anywhere in the Comment enter a * before the text.
" 
title="Del2 Deletes specified records based on text in Comments
">
<SQL>

<Where keytype="Default">
DECLARE @Count INT
DECLARE @Hold INT
 

 

CREATE TABLE #LCDelete (Survey_Key char(16)  COLLATE SQL_Latin1_General_CP1_CI_AS, 
        Survey_Event_key char(16)  COLLATE SQL_Latin1_General_CP1_CI_AS, 
        Sample_Key char(16)  COLLATE SQL_Latin1_General_CP1_CI_AS,
        Taxon_Occurrence_key char(16)  COLLATE SQL_Latin1_General_CP1_CI_AS,
        Biotope_Occurrence_key char(16)  COLLATE SQL_Latin1_General_CP1_CI_AS
            
       	)


INSERT INTO #LCDelete (Taxon_Occurrence_key,Sample_Key,Survey_Event_Key)  
SELECT DISTINCT TOCC.Taxon_Occurrence_Key, S.Sample_Key,S.Survey_Event_Key
FROM Sample S
INNER JOIN 
Taxon_Occurrence TOCC
ON TOCC.Sample_Key = S.Sample_Key
INNER JOIN Taxon_Determination TDET
ON TDET.Taxon_Occurrence_Key = TOCC.Taxon_Occurrence_Key

WHERE
<Condition field= "dbo.ufn_RtfToPlaintext(TOCC.Comment)"  operator="Like" type="Text"  name="Occurrence Comment"  />
SET @Count=0
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM TDET
   FROM 
   TAXON_DETERMINATION TDET INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TDET.TAXON_OCCURRENCE_KEY
   
   SET @Hold= @@ROWCOUNT
   SET @Count=@COUNT + @Hold
   IF @Hold &#60; 3000 BREAK END
  
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM TSC
   FROM 
   TAXON_OCCURRENCE_SOURCES  TSC INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TSC.TAXON_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
  

   set rowcount  3000
   WHILE 1 =1 
   BEGIN   
   DELETE FROM TDAT
   FROM 
   TAXON_OCCURRENCE_DATA  TDAT INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TDAT.TAXON_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


 
   set rowcount  3000
   WHILE 1 =1 
   BEGIN  
   DELETE FROM TREL
   FROM 
   TAXON_OCCURRENCE_RELATION  TREL INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TREL.TAXON_OCCURRENCE_KEY_1
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM TREL2
   FROM 
   TAXON_OCCURRENCE_RELATION  TREL2 INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TREL2.TAXON_OCCURRENCE_KEY_2
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SP
   FROM 
   SPECIMEN SP INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = SP.TAXON_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM TOCC
   FROM 
   TAXON_OCCURRENCE TOCC INNER JOIN #LCDELETE #LCD ON #LCD.TAXON_OCCURRENCE_KEY = TOCC.TAXON_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   



   
   UPDATE #LCDelete SET Sample_Key = 'Y',Survey_Event_Key = 'Y'
   FROM
   #LCDelete L
   WHERE  EXISTS (SELECT * FROM Taxon_Occurrence TOCC
   WHERE TOCC.Sample_key = L.Sample_Key) OR
   EXISTS (SELECT * FROM Biotope_Occurrence BOCC
   WHERE BOCC.Sample_key = L.Sample_Key)
      
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SSC
   FROM 
   SAMPLE_SOURCES SSC INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SSC.SAMPLE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SDAT
   FROM 
   SAMPLE_DATA SDAT INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SDAT.SAMPLE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SAD
   FROM 
   SAMPLE_Admin_Areas SAD INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SAD.SAMPLE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SREL1
   FROM 
   SAMPLE_RELATION SREL1 INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SREL1.SAMPLE_KEY_1
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SREL2
   FROM 
   SAMPLE_RELATION SREL2 INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SREL2.SAMPLE_KEY_2
   IF @@rowcount &#60; 3000 BREAK
   END



   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SREC
   FROM 
   SAMPLE_RECORDER SREC INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = SREC.SAMPLE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM S
   FROM 
   SAMPLE S INNER JOIN #LCDELETE #LCD ON #LCD.SAMPLE_KEY = S.SAMPLE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   
   UPDATE #LCDelete SET Survey_Event_Key = 'Y'
   FROM
   #LCDelete L
   WHERE  EXISTS (SELECT * FROM Sample
   WHERE Sample.Survey_Event_Key = L.Survey_Event_Key) 
     



   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SSC
   FROM 
   SURVEY_EVENT_SOURCES SSC INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_EVENT_KEY = SSC.SURVEY_EVENT_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SEREC
   FROM 
   SURVEY_EVENT_RECORDER  SEREC INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_EVENT_KEY = SEREC.SURVEY_EVENT_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SEO
   FROM 
   SURVEY_EVENT_OWNER  SEO INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_EVENT_KEY = SEO.SURVEY_EVENT_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SE
   FROM 
   SURVEY_EVENT  SE INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   


   SELECT @Count AS COUNT


   DROP TABLE #LCDELETE











</Where>













</SQL>
</batchupdate>
