Saturday, July 8, 2017

SQL - Data Deletion process

This script is used to delete the column data from the files generated from the facility processing python script.


ORIGINAL SQL SCRIPT:
DECLARE @MyDate varchar(30);
SELECT @MyDate = '2016-08-03 00:12:00'

use CSSEWS_MMC_20160623;
delete from FORECASTSTAGE         WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from FORECASTTIME          WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from FORECASTSTAGEOD       WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from FORECASTTIMEOD        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from assetsforecast        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from forecastfloodext      WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from eventtrackline        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from eventtrackpoint       WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
delete from eventwindpoly         WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
END

REVISED SQL SCRIPT:
DECLARE @MyDate varchar(30);
SELECT @MyDate = '2016-08-03 00:12:00'
DECLARE @Deleted_Rows INT;
DECLARE @Total_Rows INT;
SET @Total_Rows = 0;
SET @Deleted_Rows = 1;

use CSSEWS_MMC_20160623;
WHILE (@Deleted_Rows > 0)
  BEGIN
  delete top(3000) from FORECASTSTAGE         WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from FORECASTTIME          WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from FORECASTSTAGEOD       WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from FORECASTTIMEOD        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from assetsforecast        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from forecastfloodext      WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from eventtrackline        WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from eventtrackpoint       WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
  SET @Total_Rows = @Deleted_Rows
  delete top(3000) from eventwindpoly         WHERE  (ForecastTime < CONVERT(DATETIME, @MyDate, 102));
  SET @Deleted_Rows = @Total_Rows + @@ROWCOUNT;
END

No comments:

Post a Comment