<?xml version="1.0" ?>
<!-- Test    
  
     XML Batch Update by Mike Weideli of Littlefield Consultancy
     http://www.lfield.co.uk
     Version 3 - April 19 2009 -->
     		
<batchupdate menupath="Delete" title="Del5 Deletes down from a level" 

description="This report deletes observation records including all the observation structure below the selected level. 
It works as a quick update on the item selected when you have the observation hieracrchy open, or on a Survey identified by name (wild card - so take care).
Always close the Observation hierarchy on completion. It will delete whole Surveys, Survey Events, Samples, Taxon_Occurrences and Biotope_Occurrences. 
">


<SQL>
	


   
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
                   
       	)
<Where keytype="Survey">
   DECLARE @COUNT INT
   DECLARE @Hold Int
 
   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV LEFT JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   LEFT JOIN  SAMPLE S ON S.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
   SV.SURVEY_KEY = '%s'                          
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM USR
   FROM 
   User_Survey_restriction USR INNER JOIN #LCDELETE #LCD ON #LCD.Survey_Key = USR.Survey_key
   IF @@rowcount &#60; 3000 BREAK
   END
   

   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
   
     
     IF @@rowcount &#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
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   

   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDET
   FROM 
   BIOTOPE_DETERMINATION BDET INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDET.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BSC
   FROM 
   BIOTOPE_OCCURRENCE_SOURCES  BSC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BSC.BIOTOPE_OCCURRENCE_KEY
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDAT
   FROM 
   BIOTOPE_OCCURRENCE_DATA  BDAT INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDAT.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BOCC
   FROM 
   BIOTOPE_OCCURRENCE BOCC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BOCC.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   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

   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
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SVSC
   FROM 
   SURVEY_SOURCES  SVSC INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = SVSC.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM EFS
   FROM 
   EXPORT_FILTER_SURVEY  EFS INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = EFS.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM STAG
   FROM 
   SURVEY_TAG STAG INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = STAG.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SV
   FROM 
   SURVEY SV INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = SV.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount 0
   SELECT @Count AS COUNT

   DROP TABLE #LCDELETE

</Where>




<Where keytype="Event">

   DECLARE @COUNT INT
   DECLARE @Hold INT
   SET @Count=0

   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV LEFT JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   LEFT JOIN  SAMPLE S ON S.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
   SE.SURVEY_EVENT_KEY = '%s' 
                          
   SET @Count= @COUNT + @@ROWCOUNT
  
   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
   
   
   IF @@rowcount &#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
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   

   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDET
   FROM 
   BIOTOPE_DETERMINATION BDET INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDET.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BSC
   FROM 
   BIOTOPE_OCCURRENCE_SOURCES  BSC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BSC.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDAT
   FROM 
   BIOTOPE_OCCURRENCE_DATA  BDAT INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDAT.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BOCC
   FROM 
   BIOTOPE_OCCURRENCE BOCC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BOCC.BIOTOPE_OCCURRENCE_KEY
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   
   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

   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

   set rowcount 0 
   SELECT @Count AS COUNT

  
   DROP TABLE #LCDELETE

</Where>




<Where keytype="Sample">

   DECLARE @COUNT INT
   DECLARE @HOld  INT
   SET @Count=0

   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV LEFT JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   LEFT JOIN  SAMPLE S ON S.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
   S.SAMPLE_KEY = '%s'                            
  
   SET @Count=@COUNT + @@ROWCOUNT
   
   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
   
   IF @@rowcount &#60; 3000 BREAK
   END
   set rowcount  0
   
   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
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   

   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDET
   FROM 
   BIOTOPE_DETERMINATION BDET INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDET.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BSC
   FROM 
   BIOTOPE_OCCURRENCE_SOURCES  BSC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BSC.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDAT
   FROM 
   BIOTOPE_OCCURRENCE_DATA  BDAT INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDAT.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BOCC
   FROM 
   BIOTOPE_OCCURRENCE BOCC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BOCC.BIOTOPE_OCCURRENCE_KEY
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   
   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


   
  
   set rowcount 0
   SELECT @Count AS COUNT
   DROP TABLE #LCDELETE





</Where>




<Where keytype="Taxon_Occurrence">

   DECLARE @COUNT INT
   DECLARE @Hold INT
   SET @Count=0
   

   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV LEFT JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   LEFT JOIN  SAMPLE S ON S.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
   TOCC.TAXON_OCCURRENCE_KEY = '%s'      
                    
   

   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
   
   IF @@rowcount &#60; 3000 BREAK
   END
   set rowcount  0
   
   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
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   
  
   set rowcount  0
   SELECT @Count AS COUNT
   DROP TABLE #LCDELETE

</Where>

<Where keytype="Biotope_Occurrence">
   DECLARE @COUNT INT
   DECLARE @Hold INT
   SET @Count=0


   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV INNER JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   INNER JOIN  SAMPLE S ON SE.SURVEY_EVENT_KEY = S.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
   BOCC.BIOTOPE_OCCURRENCE_KEY = '%s'                          
  
     
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDET
   FROM 
   BIOTOPE_DETERMINATION BDET INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDET.BIOTOPE_OCCURRENCE_KEY
  
   IF @@rowcount &#60; 3000 BREAK
   END
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BSC
   FROM 
   BIOTOPE_OCCURRENCE_SOURCES  BSC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BSC.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDAT
   FROM 
   BIOTOPE_OCCURRENCE_DATA  BDAT INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDAT.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BOCC
   FROM 
   BIOTOPE_OCCURRENCE BOCC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BOCC.BIOTOPE_OCCURRENCE_KEY
   set @Hold = @@rowcount
   set @Count = @count + @Hold
   IF @Hold &#60; 3000 BREAK
   END

   set rowcount   0
   SELECT @Count AS COUNT
   DROP TABLE #LCDELETE

</Where>





<Where keytype="Default">

   DECLARE @COUNT INT
   DECLARE @Hold INT 
   INSERT INTO #LCDelete  
   SELECT DISTINCT  SV.Survey_Key,SE.Survey_Event_key,S.Sample_key,TOCC.Taxon_Occurrence_key,BOCC.Biotope_Occurrence_key
   FROM SURVEY SV LEFT JOIN SURVEY_EVENT SE ON SV.SURVEY_KEY = SE.SURVEY_KEY
   LEFT JOIN  SAMPLE S ON S.SURVEY_EVENT_KEY = SE.SURVEY_EVENT_KEY
   LEFT JOIN  TAXON_OCCURRENCE TOCC ON  S.SAMPLE_KEY = TOCC.SAMPLE_KEY 
   LEFT JOIN  BIOTOPE_OCCURRENCE BOCC oN  S.SAMPLE_KEY = BOCC.SAMPLE_KEY 
   where
    <Condition field= "SV.Item_Name"  operator="Like" type="Text"  name="Survey Name (Like)"  />                     
  
   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
   
   
   IF @@rowcount &#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
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   

   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDET
   FROM 
   BIOTOPE_DETERMINATION BDET INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDET.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BSC
   FROM 
   BIOTOPE_OCCURRENCE_SOURCES  BSC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BSC.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BDAT
   FROM 
   BIOTOPE_OCCURRENCE_DATA  BDAT INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BDAT.BIOTOPE_OCCURRENCE_KEY
   IF @@rowcount &#60; 3000 BREAK
   END
    
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM BOCC
   FROM 
   BIOTOPE_OCCURRENCE BOCC INNER JOIN #LCDELETE #LCD ON #LCD.BIOTOPE_OCCURRENCE_KEY = BOCC.BIOTOPE_OCCURRENCE_KEY
   set @Hold = @@rowcount
   set @Count = @cOunt + @Hold
   IF @Hold &#60; 3000 BREAK
   END
   
   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

   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
   
   
   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SVSC
   FROM 
   SURVEY_SOURCES  SVSC INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = SVSC.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END


   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM EFS
   FROM 
   EXPORT_FILTER_SURVEY  EFS INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = EFS.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM STAG
   FROM 
   SURVEY_TAG STAG INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = STAG.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM USR
   FROM 
   User_Survey_restriction USR INNER JOIN #LCDELETE #LCD ON #LCD.Survey_Key = USR.Survey_key
   IF @@rowcount &#60; 3000 BREAK
   END
   

   set rowcount  3000
   WHILE 1 =1 
   BEGIN
   DELETE FROM SV
   FROM 
   SURVEY SV INNER JOIN #LCDELETE #LCD ON #LCD.SURVEY_KEY = SV.SURVEY_KEY
   IF @@rowcount &#60; 3000 BREAK
   END

   set rowcount 0
   SELECT @Count AS COUNT

   DROP TABLE #LCDELETE

 


   


</Where>
  


   


</SQL>



</batchupdate>

