Étant donné une configuration multi-locataire avec une base de données contenant les données de client hébergé et une base de données pour chaque client hébergé, comment pouvez-vous créer une requête pour rechercher la même donnée dans chaque base de données de client?Requête de base de données croisée SQL Server lorsque l'autre nom de base de données n'est pas connu à l'avance?
par exemple la base de données principale locataire a une table appelée locataires:
[TenantMaster].[dbo].[Tenants]
Id, Name, DatabaseName
1, Bob, bobs_db_name
2, Kate, kates_db_name
Et chaque locataire individuel a une table appelée Widgets:
[bobs_db_name].[dbo].[Widgets]
Id, Name
1, Red widget
Est-il possible d'écrire une requête de sélection pour obtenir le nombre de widgets dans chaque DB de locataire? Ou faut-il un curseur ou une procédure de magasin? par exemple, la sortie serait:
Tenant, WidgetCount
Bob, 10
Kate, 12
oui: utilisation de TSQL dynamique –