INSERT INTO @table(a,b,c,d)
SELECT a,b,c,d
FROM table1
UNION
SELECT a,b,c,d
FROM table2
No necesita usar la cláusula de valores al insertar datos usando la instrucción SELECT. Por lo tanto, he eliminado los VALUES
bit de él y simplemente haciendo una UNIÓN de filas que se devuelven de ambas consultas SELECT.
El servidor Sql admite la sintaxis para la instrucción INSERT como
INSERT INTO Table_Name(Col1, COl2. Col3...)
SELECT Col1, COl2. Col3...
FROM Other_Table_Name
Esto insertará ese conjunto de resultados devuelto por la declaración de selección en la tabla de destino. En su caso, el resultado es una UNIÓN de dos selecciones, por lo tanto, no es diferente de una sola selección.