El desafío que veo con la solución:
FROM(
SELECT top(100) *
FROM Customers
UNION
SELECT top(100) *
FROM CustomerEurope
UNION
SELECT top(100) *
FROM CustomerAsia
UNION
SELECT top(100) *
FROM CustomerAmericas
)
es que esto crea un conjunto de datos en ventana que residirá en la RAM y en conjuntos de datos más grandes, esta solución creará graves problemas de rendimiento, ya que primero debe crear la partición y luego usará la partición para escribir en la tabla temporal.
Una mejor solución sería la siguiente:
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
para seleccionar insertar en la tabla temporal y luego agregar filas adicionales. Sin embargo, el inconveniente aquí es si hay filas duplicadas en los datos.
La mejor solución sería la siguiente:
Insert into #tmpFerdeen
SELECT top(100)*
FROM Customers
UNION
SELECT top(100)*
FROM CustomerEurope
UNION
SELECT top(100)*
FROM CustomerAsia
UNION
SELECT top(100)*
FROM CustomerAmericas
Este método debería funcionar para todos los propósitos que requieren filas distintas. Sin embargo, si desea que las filas duplicadas simplemente cambien UNION por UNION ALL
¡La mejor de las suertes!