INSERT INTO @table(a,b,c,d)
SELECT a,b,c,d
FROM table1
UNION
SELECT a,b,c,d
FROM table2
Při vkládání dat pomocí příkazu SELECT nemusíte používat klauzuli Values. Proto jsem odstranil VALUES
bit z něj a jednoduše uděláte UNION řádků vrácených z obou SELECT dotazů.
SQL server podporuje syntaxi příkazu INSERT jako
INSERT INTO Table_Name(Col1, COl2. Col3...)
SELECT Col1, COl2. Col3...
FROM Other_Table_Name
Tím se vloží výsledná sada vrácená příkazem select do cílové tabulky. Ve vašem případě je výsledkem SOUBOR dvou výběrů, takže se neliší od jediného výběru.