Voici ma problématique :
J'ai plusieurs bases de données dans lesquelles on a une table de même nom et même structure.
Ex : mabase1,mabase2, mabase3, etc...
mabase1.table1 a 2 colonnes Col1 et Col2.

Je souhaite construire une vue à partir de cette liste de base de donnée pour regrouper les données des colonnes Col1 et Col2 des tables en questions.
pour obtenir le résultat suivant :

DbaseName;Col1;Col2
mabase1;Col1Value1;Col2Value1
mabase1;Col1Value2;Col2Value2
etc..
mabase2;Col1Value1;Col2Value1
mabase2;Col1Value2;Col2Value2
etc...
mabase3;Col1Value1;Col2Value1
mabase3;Col1Value2;Col2Value2
etc...

Pour cela , j'utilise :
_ une liste contenant le nom de mes bases
_ un curseur sur cette liste
_ une variable contenant ma requete SQL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DECLARE @base varchar(50);
DECLARE @sqlCommand VARCHAR(8000);
DECLARE curseur CURSOR FOR
 select * from ( values
 ('HOLDING_TOYS'),
 ('TOYSMOTORS_TOURS'),
 ('SAGA_ANGERS') ) as mytab(mycol);
 
OPEN curseur;
 
FETCH NEXT  from curseur into @base ;
 
WHILE @@FETCH_STATUS = 0  
BEGIN
	SET @sqlCommand =  'SELECT ''' + @base + ''' as DBaseMycol ,[CT_Num],[CT_intitule] from ['+@base+'].[dbo].[F_COMPTET]'
	EXEC(@sqlCommand)
	FETCH NEXT  from curseur into @base;
END
CLOSE curseur
DEALLOCATE curseur
Le code ci-dessous affiche bien un résultat à 3 colonnes comme souhaité mais je n'arrive pas à construire une view à partir de ce résultat dans SQL Managmt Studio en y copiant ce code ou par une requête de création de vue.

Avez-vous une idée pour ce faire ??

( l'utilisation d'un curseur n'est pas optimal mais je n'ai pas + de 150 bases, chacune 'ayant pas + de 50000 entrées par tables requêtées.)

merci bcp d'avance,