Advertisement
tsk138

Del-ExpiredUpdates.sql

Mar 29th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.16 KB | None | 0 0
  1. USE SUSDB
  2. GO
  3. IF object_id('tempdb..#MyTempTable') IS NOT NULL  DROP TABLE #MyTempTable
  4. GO
  5. IF (SELECT CURSOR_STATUS('global','myCursor')) >= -1
  6. BEGIN
  7. DEALLOCATE myCursor
  8. END
  9. GO
  10. sp_configure 'Show Advanced Options', 1
  11. GO
  12. RECONFIGURE
  13. GO
  14. sp_configure 'Ad Hoc Distributed Queries', 1
  15. GO
  16. RECONFIGURE
  17. GO
  18.  
  19. SELECT TOP (2000) * INTO #MyTempTable
  20.     FROM OPENROWSET('SQLNCLI', 'Server=(local);Trusted_Connection=yes;', 'EXEC susdb.dbo.spGetObsoleteUpdatesToCleanup')
  21.  
  22. DECLARE myCursor CURSOR FOR
  23. SELECT LocalUpdateID FROM #MyTempTable
  24.  
  25. DECLARE @x INT
  26. DECLARE @Msg VARCHAR(50)
  27. DECLARE @COUNT INT
  28. SELECT @COUNT = COUNT(*) FROM #MyTempTable
  29.  
  30. SELECT @msg = 'Number of updates to be deleted:' +  CAST( @COUNT AS VARCHAR(10))
  31. RAISERROR(@msg, 0, 1) WITH NOWAIT
  32.  
  33. OPEN myCursor
  34. FETCH NEXT FROM myCursor INTO @x
  35.  
  36. WHILE @@FETCH_STATUS = 0
  37. BEGIN
  38.     SELECT @msg = 'Deleting update with ID:' + CAST (@x AS VARCHAR(10))
  39.     RAISERROR(@msg, 0, 1) WITH NOWAIT
  40.     EXEC spDeleteUpdate @localUpdateID=@x
  41.    
  42.     FETCH NEXT FROM myCursor INTO @x
  43. END
  44. CLOSE myCursor;
  45. DEALLOCATE myCursor;
  46. DROP TABLE #MyTempTable;
  47. SELECT @msg = 'Deletion completed'
  48. RAISERROR(@msg, 0, 1) WITH NOWAIT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement