You can use the output clause with the delete
😎
DECLARE @TTABLE TABLE
(
TT_ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED NOT NULL
,TT_VAL INT NOT NULL
);
INSERT INTO @TTABLE(TT_VAL)
VALUES (123),(234),(345),(456),(567);
SELECT * FROM @TTABLE;
DELETE
FROM @TTABLE
OUTPUT deleted.*
WHERE TT_VAL < 300;
SELECT * FROM @TTABLE;
Results
TT_ID TT_VAL
----------- -----------
1 123
2 234
3 345
4 456
5 567
TT_ID TT_VAL
----------- -----------
1 123
2 234
TT_ID TT_VAL
----------- -----------
3 345
4 456
5 567