You can try the following classic approach.
The ROW_NUMBER() is a window function that assigns a sequential integer to each row within the partition of a result set. The row number starts with 1 for the first row in each partition. Eventually, we delete duplicate rows where seq(uence) > 1
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID1 INT, ID2 INT, Updated DATE);
INSERT INTO @tbl (ID1, ID2, Updated)
VALUES
( 1, 1, '2020-01-08'),
( 1, 1, '2020-01-07'),
( 1, 1, '2020-01-07'),
( 1, 2, '2020-01-08'),
( 1, 3, '2020-01-08');
-- DDL and sample data population, end
;WITH rs AS
(
SELECT *
, ROW_NUMBER() OVER (PARTITION BY ID1, ID2 ORDER BY Updated DESC) AS seq
FROM @tbl
)
DELETE FROM rs
WHERE seq >1;
-- test
SELECT * FROM @tbl;
Output
+-----+-----+------------+
| ID1 | ID2 | Updated |
+-----+-----+------------+
| 1 | 1 | 2020-01-08 |
| 1 | 2 | 2020-01-08 |
| 1 | 3 | 2020-01-08 |
+-----+-----+------------+