If you want to generate a INSERT script for the TOP 100 recordsets in a first step and execute the generated script in a second step you can try this:
DROP TABLE IF EXISTS #source;
DROP TABLE IF EXISTS #target;
CREATE TABLE #source ( value1 INT, value2 VARCHAR(100) );
CREATE TABLE #target ( value1 INT, value2 VARCHAR(100) );
INSERT INTO #source
VALUES (10, 'A100'), (10, 'A101'), (10, 'A102'), (10, 'A103'), (20, 'B100'), (20, 'B101')
-- STEP 1: GENERATE SCRIPT
SELECT TOP 3 sql = 'INSERT INTO #target(value1, value2) VALUES' + '(' + CAST(value1 AS VARCHAR(100)) + ', ''' + value2 + ''');'
FROM #source
ORDER BY value2 DESC
-- STEP 2: EXEC GENERATED SCRIPT
INSERT INTO #target(value1, value2) VALUES(20, 'B101');
INSERT INTO #target(value1, value2) VALUES(20, 'B100');
INSERT INTO #target(value1, value2) VALUES(10, 'A103');
-- RESULT:
SELECT * FROM #target;
The cast and recast to VARCHAR may be exhausting if you have a lot of columns to handle.
If it is not necessary to create a interim script it would be easier this way:
INSERT INTO #target(value1, value2)
SELECT TOP 3 value1, value2 FROM #source;