usar mssql from entre diferencia como all sql sql-server

mssql - union all sql server 2012



¿Es posible usar la cláusula SELECT INTO con UNION[ALL]? (7)

Esto funciona en SQL Server:

SELECT * INTO tmpFerdeen FROM ( SELECT top 100 * FROM Customers UNION All SELECT top 100 * FROM CustomerEurope UNION All SELECT top 100 * FROM CustomerAsia UNION All SELECT top 100 * FROM CustomerAmericas ) as tmp

En SQL Server esto inserta 100 registros, desde la tabla Clientes en tmpFerdeen: -

SELECT top(100)* INTO tmpFerdeen FROM Customers

¿Es posible hacer un SELECT INTO a través de UNION ALL SELECT: -

SELECT top(100)* FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas

No estoy seguro de dónde agregar la cláusula INTO.


Intente algo como esto: Cree la tabla de objetos final, tmpFerdeen con la estructura de la unión.

Entonces

INSERT INTO tmpFerdeen ( SELECT top(100)* FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas )


Lo haría así:

SELECT top(100)* into #tmpFerdeen FROM Customers Insert into #tmpFerdeen SELECT top(100)* FROM CustomerEurope Insert into #tmpFerdeen SELECT top(100)* FROM CustomerAsia Insert into #tmpFerdeen SELECT top(100)* FROM CustomerAmericas


No necesita una tabla derivada para nada.

Solo ponga INTO después del primer SELECT

SELECT top(100)* INTO tmpFerdeen FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas


Para las consultas de MS Access, esto funcionó:

SELECT * INTO tmpFerdeen FROM( SELECT top(100) * FROM Customers UNION All SELECT top(100) * FROM CustomerEurope UNION All SELECT top(100) * FROM CustomerAsia UNION All SELECT top(100) * FROM CustomerAmericas )

Esto NO funcionó en MS Access

SELECT top(100) * INTO tmpFerdeen FROM Customers UNION All SELECT top(100) * FROM CustomerEurope UNION All SELECT top(100) * FROM CustomerAsia UNION All SELECT top(100) * FROM CustomerAmericas


Quizás intente esto?

SELECT * INTO tmpFerdeen ( SELECT top(100)* FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas)


SELECT * INTO tmpFerdeen FROM (SELECT top(100)* FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas) AS Blablabal

Este "Blablabal" es necesario