Le défi que je vois avec la solution:
FROM(
SELECT top(100) *
FROM Customers
UNION
SELECT top(100) *
FROM CustomerEurope
UNION
SELECT top(100) *
FROM CustomerAsia
UNION
SELECT top(100) *
FROM CustomerAmericas
)
est que cela crée un ensemble de données fenêtré qui résidera dans la RAM et sur des ensembles de données plus volumineux, cette solution créera de graves problèmes de performances car elle doit d'abord créer la partition, puis elle utilisera la partition pour écrire dans la table temporaire.
Une meilleure solution serait la suivante:
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
pour sélectionner insérer dans la table temporaire, puis ajouter des lignes supplémentaires. Cependant, le problème ici est s'il y a des lignes en double dans les données.
La meilleure solution serait la suivante:
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
Cette méthode devrait fonctionner à toutes les fins nécessitant des lignes distinctes. Si, cependant, vous voulez les lignes dupliquées, remplacez simplement UNION par UNION ALL
Bonne chance!