SQL Server - Delete Large table data with Where clause
If we want to delete data from large table with some where caluse, the best way to do is :
Select COUNT(*) FROM [Server].[Database].[MyTable] WHERE ...
By doing above we can know the count of records to be deleted.
DECLARE @RowsDeleted INTEGER
DECLARE @RowsToDeleteAtATime
SET @RowsDeleted = 1
SET @RowsToDeleteAtATime = 50000
WHILE (@RowsDeleted > 0)
BEGIN
DELETE TOP (@RowsToDeleteAtATime) FROM [Server].[Database].[MyTable] WHERE ...
SET @RowsDeleted = @@ROWCOUNT
END
And by doing :
Select COUNT(*) FROM [Server].[Database].[MyTable] WHERE ...
We can know the status.
Select COUNT(*) FROM [Server].[Database].[MyTable] WHERE ...
By doing above we can know the count of records to be deleted.
DECLARE @RowsDeleted INTEGER
DECLARE @RowsToDeleteAtATime
SET @RowsDeleted = 1
SET @RowsToDeleteAtATime = 50000
WHILE (@RowsDeleted > 0)
BEGIN
DELETE TOP (@RowsToDeleteAtATime) FROM [Server].[Database].[MyTable] WHERE ...
SET @RowsDeleted = @@ROWCOUNT
END
And by doing :
Select COUNT(*) FROM [Server].[Database].[MyTable] WHERE ...
We can know the status.
Comments
Post a Comment