Generell kannst du das nicht.
Sie gilt nur für die nächste Anweisung. Sie könnten eine Ansicht mit derselben Definition definieren, wenn Sie die Definition wiederverwenden möchten für mehrere Anweisungen oder materialisieren Sie es selbst in einer temporären Tabelle/Tabellenvariablen, um die Ergebnisse wiederzuverwenden .
Für den speziellen Fall in Ihrer Frage könnten Sie jedoch alles in einer Anweisung tun.
WITH cte
AS (SELECT 1 AS n
UNION ALL
SELECT n + 1
FROM cte
WHERE n + 1 <= 10)
INSERT INTO tbl1
(id)
OUTPUT INSERTED.id
INTO tbl2(id)
SELECT n
FROM cte