Which TransactSQL batch should you use?

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?

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



Leave a Reply 0

Your email address will not be published. Required fields are marked *