What can you do now?
You can try to run a separate query using the WITH (NOLOCK) link of the table hint to find out how many rows have been updated. For example, if the update instruction:
UPDATE MyTable
SET MyField = 'UPDATEDVALUE'
WHERE ID BETWEEN 1 AND 10000000
You can run this:
SELECT COUNT(*)
FROM MyTable WITH (NOLOCK)
WHERE ID BETWEEN 1 AND 10000000
AND MyField = 'UPDATEDVALUE'
What can you do in the future?
. , 1000 ( ). , ( SSMS), .
DECLARE @RowCount INTEGER
SET @RowCount = 1
DECLARE @Message VARCHAR(500)
DECLARE @TotalRowsUpdated INTEGER
SET @TotalRowsUpdated = 0
WHILE (@RowCount > 0)
BEGIN
UPDATE TOP (1000) MyTable
SET MyField = 'UPDATEDVALUE'
WHERE ID BETWEEN 1 AND 10000000
AND MyField <> 'UPDATEDVALUE'
SELECT @RowCount = @@ROWCOUNT
SET @TotalRowsUpdated = @TotalRowsUpdated + @RowCount
SELECT @Message = CAST(GETDATE() AS VARCHAR) + ' : ' + CAST(@TotalRowsUpdated AS VARCHAR) + ' records updated in total'
RAISERROR (@Message, 0, 1) WITH NOWAIT
END
RAISERROR, , , . PRINT , , .