You have been tasked to delete 1000 rows from a table named NewWidgets. There are 2000 rows in
which the column ToBeDeleted set to 1.
You need to write a TransactSQL
batch that will delete exactly 1000 rows.
Which TransactSQL
batch should you use?
A.
DELETE TOP (1000) dbo.NewWidgets
WHERE ToBeDeleted = 1;
B.
DECLARE @BatchSize INT = 10;
WHILE (@BatchSize = 10)
DELETE TOP (@BatchSize) dbo.NewWidgets
WHERE ToBeDeleted = 1;
C.
DELETE TOP ((SELECT COUNT(*) FROM dbo.NewWidgets
WHERE ToBeDeleted = 1)) w
FROM dbo.NewWidgets w
WHERE w.ToBeDeleted = 1;
D.
DECLARE @TotalRowCount INT = 0;
WHILE (@TotalRowCount <= 1000)
BEGIN
DELETE TOP (10) dbo.NewWidgets
WHERE ToBeDeleted = 1;
SET @TotalRowCount += @@ROWCOUNT;
END